เล่นเกมกำจัด
บทนำ ในความท้าทายนี้งานของคุณคือจำลองเกมการกำจัดบางประเภท ในเกมผู้เข้าร่วมยืนเป็นวงกลมและทุกคนถือเลขจำนวนเต็ม ในแต่ละรอบของเกมผู้เข้าร่วมทุกคนจะได้คะแนนจากคนที่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] -> …