บทนำ
ในความท้าทายนี้งานของคุณคือจำลองเกมการกำจัดบางประเภท ในเกมผู้เข้าร่วมยืนเป็นวงกลมและทุกคนถือเลขจำนวนเต็ม ในแต่ละรอบของเกมผู้เข้าร่วมทุกคนจะได้คะแนนจากคนที่nก้าวออกไปถ้าnเป็นตัวเลขที่พวกเขาถืออยู่ ถ้าnเป็นบวกพวกเขานับไปทางขวาหากnเป็นลบพวกเขานับทางซ้ายและถ้าnเป็นศูนย์พวกเขาจะชี้ไปที่ตัวเอง ผู้เข้าร่วมทุกคนที่มีคนชี้ไปที่พวกเขาจะถูกกำจัดและออกจากวงกลม จบรอบนี้ รอบต่อไปจนกว่าจะไม่มีผู้เข้าร่วมเหลือ
อินพุต
ข้อมูลที่คุณป้อนเป็นรายการจำนวนเต็มที่ไม่ว่างเปล่าในรูปแบบที่เหมาะสม มันหมายถึงตัวเลขที่ผู้เข้าร่วมของเกมจะถือ
เอาท์พุต
ผลลัพธ์ของคุณคือจำนวนรอบที่ใช้จนกว่าเกมจะจบลง
ตัวอย่าง
[3,1,-2,0,8]พิจารณารายชื่อการป้อนข้อมูล ในรอบแรกสิ่งต่อไปนี้จะเกิดขึ้น:
- คนถือจุดที่เหมาะสมในการถือครองคน
30 - คนถือจุดที่เหมาะสมในการถือครองคน
1-2 - คนที่ถือครองจุดซ้ายที่ถือครองคน
-23 - คนที่ถือ
0คะแนนในตัวเอง - บุคคลที่ถือ
8คะแนนอยู่ที่บุคคลที่ถือ-2(รายการแสดงถึงวงกลมดังนั้นจึงล้อมรอบที่ปลาย)
ซึ่งหมายความว่า0, -2และจะถูกตัดออกเพื่อให้รอบที่สองจะทำกับรายการ3 [1,8]ที่นี่1ชี้ไปที่8และ8ชี้ไปที่ตัวเองจึง8ถูกกำจัด รอบที่สามจะทำกับรายการ[1]ที่1เพียงแค่ชี้ที่ตัวเองและจะถูกกำจัดออก 3มันต้องใช้เวลาสามรอบเพื่อกำจัดผู้เข้าร่วมทั้งหมดเพื่อการส่งออกที่ถูกต้องคือ
กฎและการให้คะแนน
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
[3] -> 1
[0,0,0] -> 1
[-2,-1,0,1,2,3,4,5,6,7] -> 2
[5,5,5,6,6,6] -> 2
[3,-7,-13,18,-10,8] -> 2
[-7,5,1,-5,-13,-10,9] -> 2
[4,20,19,16,8,-9,-14,-2,17,7,2,-2,10,0,18,-5,-5,20] -> 3
[11,2,7,-6,-15,-8,15,-12,-2,-8,-17,6,-6,-5,0,-20,-2,11,1] -> 4
[2,-12,-11,7,-16,9,15,-10,7,3,-17,18,6,6,13,0,18,10,-7,-1] -> 3
[18,-18,-16,-2,-19,1,-9,-18,2,1,6,-15,12,3,-10,8,-3,7,-4,-11,5,-15,17,17,-20,11,-13,9,15] -> 6
nหมายเลขที่บุคคลนั้นถืออยู่หรือไม่