pengantar
Dalam tantangan ini, tugas Anda adalah mensimulasikan jenis permainan eliminasi tertentu. Dalam permainan, para peserta berdiri dalam lingkaran, dan semua orang memegang bilangan bulat. Pada setiap putaran permainan, setiap peserta menunjuk pada orang tersebut n
menjauh, jika n
nomor yang mereka pegang. Jika n
positif, mereka menghitung ke kanan, jika n
negatif, mereka menghitung ke kiri, dan jika n
nol, mereka menunjuk pada diri mereka sendiri. Setiap peserta yang memiliki seseorang yang menunjuk pada mereka dihilangkan, dan meninggalkan lingkaran; ini mengakhiri babak. Putaran berlanjut sampai tidak ada peserta yang tersisa.
Memasukkan
Input Anda adalah daftar bilangan bulat yang tidak kosong, dalam format apa pun yang masuk akal. Ini mewakili angka yang dipegang oleh para peserta game.
Keluaran
Output Anda adalah jumlah putaran yang dibutuhkan hingga permainan berakhir.
Contoh
Pertimbangkan daftar input [3,1,-2,0,8]
. Di babak pertama, berikut ini terjadi:
- Orang yang memegang
3
menunjuk tepat ke orang yang memegang0
. - Orang yang memegang
1
menunjuk tepat ke orang yang memegang-2
. - Orang yang memegang
-2
poin tertinggal di orang yang memegang3
. - Orang yang memegang
0
poin pada dirinya sendiri. - Orang yang memegang
8
titik tepat di orang yang memegang-2
(daftar mewakili lingkaran, sehingga membungkus di ujungnya).
Ini berarti 0
, -2
dan 3
dihilangkan, sehingga putaran kedua dilakukan dengan daftar [1,8]
. Di sini, 1
menunjuk pada 8
, dan 8
menunjuk pada diri mereka sendiri, jadi 8
dihilangkan. Babak ketiga dilakukan dengan daftar [1]
, di mana 1
hanya menunjuk pada diri mereka sendiri dan dihilangkan. Butuh tiga putaran untuk menghilangkan semua peserta, sehingga hasil yang benar adalah 3
.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
[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
apakah nomor yang dipegang orang itu?