คุณกำลังต่อสู้กับเครือข่ายสายลับของศัตรูมากมาย คุณรู้ว่าสายลับแต่ละอันมีตัวตนปลอมอย่างน้อยหนึ่ง (หลายครั้ง) ที่พวกเขาต้องการใช้ คุณต้องการทราบจำนวนสายลับที่คุณกำลังเผชิญอยู่จริง ๆ
โชคดีที่หน่วยสืบราชการลับของคุณตัวแทนกำลังทำงานของพวกเขาและสามารถบางครั้งคิดออกเมื่อสองปลอมจะถูกควบคุมจริงโดยสอดแนมศัตรูเดียวกัน
กล่าวคือ:
- ตัวแทนของคุณไม่ทราบว่าเมื่อใดที่ตัวปลอมสองตัวมีสายลับเดียวกันอยู่ข้างหลังพวกเขา
- หากตัวแทนแจ้งให้คุณทราบว่าตัวตนปลอมสองตัวนั้นถูกควบคุมโดยสายลับเดียวกันคุณเชื่อว่าพวกเขาถูกต้อง
ข้อความตัวแทน
ตัวแทนส่งข้อความลับ ๆ ให้คุณเพื่อบอกคุณว่าตัวตนใดที่มีสายลับเดียวกันข้างหลังพวกเขา ตัวอย่าง:
คุณมี2 ตัวแทนและตัวปลอม 5 ตัวที่จะจัดการ
ตัวแทนแรกส่งข้อความถึงคุณ:
Red Red Blue Orange Orange
หมายความว่าพวกเขาคิดว่ามีสายลับ 3:
- อันแรก (สีแดง) ควบคุมข้อมูลประจำตัว 1 และ 2
- ตัวที่สอง (สีน้ำเงิน) ควบคุมเอกลักษณ์ 3
- อันที่สาม (สีส้ม) ควบคุมเอกลักษณ์ 4 และ 5
เอเจนต์ที่สองส่งข้อความถึงคุณ:
cat dog dog bird fly
หมายความว่าพวกเขาคิดว่ามีสายลับ 4:
- ตัวแรก (cat) ควบคุมเอกลักษณ์ 1
- ตัวที่สอง (สุนัข) ควบคุมเอกลักษณ์ 2 และ 3
- ตัวที่สาม (นก) ควบคุมเอกลักษณ์ 4
- อันที่สี่ (บิน) ควบคุมเอกลักษณ์ 5
รวบรวม Intel ที่เราเห็น:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
วิธีการนี้มีที่มากที่สุด2 สายลับ
หมายเหตุ
เอกลักษณ์ที่เป็นเจ้าของโดยสายลับเดียวกันไม่จำเป็นต้องต่อเนื่องกันเช่นข้อความเช่น:
dog cat dog
ถูกต้อง
นอกจากนี้คำเดียวกันอาจถูกใช้โดยตัวแทนสองคนที่แตกต่างกัน - ที่ไม่ได้หมายถึงอะไรมันเป็นเรื่องบังเอิญเช่น:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
น้ำแข็งถูกใช้โดยเอเจนต์ทั้งสอง - Ice
เอเจนต์แรกที่ใช้ไม่เกี่ยวข้องกับการเกิดขึ้นสองครั้งของIce
เอเจนต์ที่สอง
ท้าทาย
รวบรวมสติปัญญาตัวแทนของคุณทั้งหมดและดูว่ามีสายลับศัตรูกี่คน (เพื่อให้แม่นยำยิ่งขึ้นให้รับขอบเขตบนที่ต่ำที่สุดตามข้อมูลที่ จำกัด ที่คุณมี)
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ข้อมูลจำเพาะอินพุตและเอาต์พุต
อินพุตเป็นรายการของบรรทัด n ซึ่งแสดงถึงข้อความ n จากเอเจนต์ แต่ละบรรทัดประกอบด้วยโทเค็นที่คั่นด้วยช่องว่าง k, k เดียวกันสำหรับทุกบรรทัด โทเค็นเป็นตัวอักษรและตัวเลขความยาวโดยพลการ กรณีสำคัญ
ผลลัพธ์ควรเป็นตัวเลขเดี่ยวซึ่งแทนจำนวนสายลับที่แตกต่างกันโดยขึ้นอยู่กับตัวแทนของคุณ
ตัวอย่าง
ตัวอย่างที่ 1
การป้อนข้อมูล:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
เอาท์พุท:
2
ตัวอย่างที่ 2
การป้อนข้อมูล:
Blossom Bubbles Buttercup
Ed Edd Eddy
เอาท์พุท:
3
ตัวอย่างที่ 3
การป้อนข้อมูล:
Botswana Botswana Botswana
Left Middle Right
เอาท์พุท:
1
ตัวอย่างที่ 4
การป้อนข้อมูล:
Black White
White Black
เอาท์พุท:
2
ตัวอย่างที่ 5
การป้อนข้อมูล:
Foo Bar Foo
Foo Bar Bar
เอาท์พุท:
1
ตัวอย่างที่ 6
การป้อนข้อมูล:
A B C D
A A C D
A B C C
A B B D
เอาท์พุท:
1
ตัวอย่างที่ 7
การป้อนข้อมูล:
A B A C
เอาท์พุท:
3
ตัวอย่างที่ 8
การป้อนข้อมูล:
A
B
C
เอาท์พุท:
1
ตัวอย่างที่ 9
การป้อนข้อมูล:
X
เอาท์พุท:
1