introduzione
In questa sfida, il tuo compito è simulare un certo tipo di gioco di eliminazione. Nel gioco, i partecipanti stanno in cerchio e tutti hanno un numero intero. Ad ogni round del gioco, ogni partecipante punta alla persona n
che si allontana, se n
è il numero che sta tenendo. Se n
è positivo, contano alla loro destra, se n
è negativo, contano alla loro sinistra e se n
è zero, indicano se stessi. Ogni partecipante che ha qualcuno che li punta viene eliminato e lascia il cerchio; questo termina il round. I round continuano fino a quando non rimangono più partecipanti.
Ingresso
Il tuo input è un elenco non vuoto di numeri interi, in qualsiasi formato ragionevole. Rappresenta i numeri che detengono i partecipanti al gioco.
Produzione
Il tuo risultato è il numero di round necessari fino alla fine del gioco.
Esempio
Considera l'elenco di input [3,1,-2,0,8]
. Al primo turno, succede quanto segue:
- La persona che detiene
3
punti direttamente alla persona in possesso0
. - La persona che detiene
1
punti direttamente alla persona in possesso-2
. - La persona che detiene
-2
punti lasciati alla persona in possesso3
. - La persona che si tiene
0
per sé. - La persona che tiene
8
punta verso la persona in mano-2
(l'elenco rappresenta un cerchio, quindi si avvolge alle estremità).
Ciò significa che 0
, -2
e 3
vengono eliminati, quindi il secondo turno avviene con l'elenco [1,8]
. Qui, 1
punti 8
e 8
punti su se stessi, così 8
viene eliminato. Il terzo round è fatto con la lista [1]
, dove 1
indica semplicemente se stesso e viene eliminato. Ci sono voluti tre round per eliminare tutti i partecipanti, quindi l'output corretto è 3
.
Regole e punteggio
È possibile scrivere un programma completo o una funzione. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
[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
è il numero che ha la persona?