Lý lịch
Bạn của bạn, một nhà ngôn ngữ học, đã ghi lại và phân tích một số đoạn hội thoại đơn giản bằng nhiều ngôn ngữ khác nhau. Khá lơ đãng, họ đã quên ngôn ngữ của từng đoạn. Bạn phải giúp họ bằng cách tạo một chương trình phân tích cấu trúc câu và loại trừ các trường hợp không thể.
Đầu vào
Đầu vào của bạn là một chuỗi không trống chứa các ký tự SVO
, viết tắt của chủ ngữ , động từ và đối tượng . Nó đại diện cho một đoạn hội thoại được phân tích bởi nhà ngôn ngữ học.
Đầu ra
Nhiệm vụ của bạn là chia chuỗi thành các câu và nhập một khoảng thời gian .
sau mỗi câu. Một câu chứa một động từ, HOẶC một động từ và một chủ đề, HOẶC một động từ, một chủ đề và một đối tượng. Tuy nhiên, bạn không biết từ nào mà ngôn ngữ gốc sử dụng; Tiếng Anh sử dụng chủ ngữ-động từ-đối tượng , nhưng các ngôn ngữ khác, như tiếng Latinh, sử dụng chủ ngữ-đối tượng-động từ . Trong thực tế, tất cả sáu hoán vị tồn tại trong các ngôn ngữ tự nhiên, vì vậy bạn phải kiểm tra từng trong số chúng.
Đầu ra của bạn sẽ chứa, trong một chuỗi được phân tách bằng dòng mới, mỗi thứ tự từ có thể áp dụng, dấu hai chấm :
và chuỗi đầu vào được chia thành các câu theo thứ tự đó. Nếu chuỗi không thể được phân tích cú pháp theo một số thứ tự từ, dòng tương ứng sẽ bị bỏ qua. Thứ tự của các dòng không quan trọng, và nó được đảm bảo rằng ít nhất một thứ tự từ có thể được phân tích cú pháp.
Thí dụ
Xem xét đầu vào
VSVOSV
Theo VOS
thứ tự, snipped có thể được phân tích cú pháp như VS.VOS.V.
, và theo SVO
thứ tự, nó có thể được phân tích cú pháp như V.SVO.SV.
. Thứ tự OSV
cũng hoạt động, và đầu ra đầy đủ là
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép. Biểu thức thông thường và tất cả các phần dựng sẵn được cho phép.
Các trường hợp thử nghiệm
Input:
V
Output:
VSO:V.
VOS:V.
SVO:V.
OVS:V.
SOV:V.
OSV:V.
Input:
SVV
Output:
SVO:SV.V.
SOV:SV.V.
OSV:SV.V.
Input:
VSVOV
Output:
SVO:V.SVO.V.
Input:
VSOVS
Output:
VSO:VSO.VS.
OVS:VS.OVS.
Input:
SVOSV
Output:
SVO:SVO.SV.
OSV:SV.OSV.
Input:
VSVOSV
Output:
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Input:
VSVVSOVSV
Output:
VSO:VS.V.VSO.VS.V.
OVS:VS.V.VS.OVS.V.
SOV:V.SV.V.SOV.SV.
Input:
SVVSVSOVSVV
Output:
SOV:SV.V.SV.SOV.SV.V.
Input:
VSOVSVSOVSVVS
Output:
VSO:VSO.VS.VSO.VS.V.VS.
OVS:VS.OVS.VS.OVS.V.VS.