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
n
genap, Anda melompat ke posisi absoluta[i] mod length(a)
, - jika
n
aneh, Anda melompat ke posisi relatif(i + a[i]) mod length(a)
.
Pengindeksan array dimulai dari nol. Anda dapat menghitung lompatan pertama sebagai belokan 0
atau 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 a
untuk bermain game.
Keluaran
Jumlah maksimum p
sedemikian sehingga, ketika mulai pada beberapa posisi i
dan menghitung belokan pertama sebagai salah satu 0
atau 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
mod
didefinisikan sebagai selalu positif ( -1 mod 5 == 4
) tidak seperti dalam C. Apakah itu yang terjadi?
mod
, yang selalu memberikan hasil tidak negatif.