พื้นหลัง
เพื่อนของคุณนักภาษาศาสตร์ได้บันทึกและวิเคราะห์ตัวอย่างบทสนทนาง่ายๆในภาษาต่างๆ พวกเขาลืมไปแล้วว่ามีตัวอย่างภาษาอะไรบ้างคุณต้องช่วยพวกเขาด้วยการสร้างโปรแกรมที่วิเคราะห์โครงสร้างประโยคและกฏที่เป็นไปไม่ได้
อินพุต
ข้อมูลของคุณเป็นสตริงที่ไม่ว่างเปล่าที่มีตัวละครSVO
ซึ่งยืนสำหรับเรื่อง , คำกริยาและวัตถุ มันแสดงให้เห็นตัวอย่างการสนทนาการวิเคราะห์โดยนักภาษาศาสตร์
เอาท์พุต
งานของคุณคือการแบ่งสตริงออกเป็นประโยคและป้อนจุด.
หลังจากแต่ละประโยค ประโยคมีทั้งคำกริยาคำกริยาและหัวเรื่องหรือคำกริยาหัวเรื่องและวัตถุ อย่างไรก็ตามคุณไม่ทราบว่าคำสั่งใดที่ภาษาต้นฉบับใช้ ภาษาอังกฤษใช้เรื่องกริยาวัตถุแต่ภาษาอื่น ๆ เช่นภาษาละตินใช้เรื่องวัตถุกริยา ในความเป็นจริงการเรียงสับเปลี่ยนทั้งหกนั้นมีอยู่ในภาษาธรรมชาติดังนั้นคุณต้องตรวจสอบแต่ละอัน
ผลลัพธ์ของคุณจะต้องประกอบด้วยสตริงที่คั่นด้วยการขึ้นบรรทัดใหม่แต่ละคำสั่งที่ใช้บังคับโคลอน:
และสตริงอินพุตที่แบ่งออกเป็นประโยคตามลำดับนั้น หากไม่สามารถแยกสตริงได้ในลำดับของคำศัพท์บรรทัดที่เกี่ยวข้องจะถูกตัดออก ลำดับของบรรทัดไม่สำคัญและรับประกันได้ว่าคำสั่งอย่างน้อยหนึ่งคำสามารถแยกวิเคราะห์ได้
ตัวอย่าง
พิจารณาอินพุต
VSVOSV
ในVOS
การสั่งซื้อ snipped สามารถแยกวิเคราะห์เป็นVS.VOS.V.
และในการสั่งซื้อก็สามารถแยกวิเคราะห์เป็นSVO
V.SVO.SV.
คำสั่งOSV
นี้ยังใช้งานได้และเอาต์พุตเต็มรูปแบบคือ
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
กฎและการให้คะแนน
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต อนุญาตให้ใช้นิพจน์ทั่วไปและบิวด์อินทั้งหมดได้
กรณีทดสอบ
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.