Mari kita main game satu pemain yang disebut jump the array . Untuk bermain, Anda hanya perlu array bilangan bulat, katakanlah a. Anda mulai pada suatu posisi i, dan pada setiap belokan, Anda melompat ke posisi baru. Pada gilirannya n,
- jika
ngenap, Anda melompat ke posisi absoluta[i] mod length(a), - jika
naneh, Anda melompat ke posisi relatif(i + a[i]) mod length(a).
Pengindeksan array dimulai dari nol. Anda dapat menghitung lompatan pertama sebagai belokan 0atau belokan 1, yang memberikan gim yang berbeda. Karena ruang keadaan permainan terbatas (gerakan Anda ditentukan oleh posisi Anda dan paritas nomor belokan), Anda tentu saja pada akhirnya akan memasukkan lingkaran yang panjangnya genap. Dilambangkan dengan loop(a, i, b)panjang loop ini, ketika lompatan pertama dihitung sebagai belokan b.
Memasukkan
Array kosong kosong auntuk bermain game.
Keluaran
Jumlah maksimum psedemikian sehingga, ketika mulai pada beberapa posisi idan menghitung belokan pertama sebagai salah satu 0atau 1, Anda akhirnya memasukkan satu lingkaran panjang 2 * p. Dengan kata lain, output Anda adalah angka
max { loop(a, i, b)/2 : i in [0 .. length(a)-1], b in [0,1] }
Aturan
Anda dapat memberikan fungsi atau program lengkap. Hitungan byte terkecil menang, dan celah standar tidak diizinkan.
Uji kasus
[0] -> 1
[-213] -> 1
[1,3,12,-1,7] -> 1
[2,3,5,7,9,11,13,17,19] -> 2
[-2,3,-5,7,-9,11,-13,17,-19,23,-27] -> 3
[0,2,5,4,-9,0,-1,1,-1,1,-6] -> 4
moddidefinisikan sebagai selalu positif ( -1 mod 5 == 4) tidak seperti dalam C. Apakah itu yang terjadi?
mod, yang selalu memberikan hasil tidak negatif.