introduction
Dans ce défi, votre tâche consiste à simuler un certain type de jeu d'élimination. Dans le jeu, les participants se tiennent en cercle et tout le monde tient un entier. À chaque manche du jeu, chaque participant pointe du doigt la personne n
qui s'éloigne, si tel n
est le numéro qu'elle détient. Si n
est positif, ils comptent à leur droite, s'ils n
sont négatifs, ils comptent à leur gauche et s'ils n
sont nuls, ils se désignent eux-mêmes. Tout participant qui a quelqu'un pointé sur lui est éliminé et quitte le cercle; ceci termine le tour. Les tours se poursuivent jusqu'à ce qu'il ne reste plus de participants.
Contribution
Votre entrée est une liste non vide d'entiers, dans n'importe quel format raisonnable. Il représente les numéros que détiennent les participants au jeu.
Production
Votre sortie est le nombre de tours qu'il faut jusqu'à la fin du jeu.
Exemple
Considérez la liste d'entrée [3,1,-2,0,8]
. Au premier tour, les événements suivants se produisent:
- La personne qui tient
3
pointe droit sur la personne qui tient0
. - La personne qui tient
1
pointe droit sur la personne qui tient-2
. - La personne qui tient
-2
pointe vers la personne qui tient3
. - La personne qui se
0
montre du doigt. - La personne qui tient
8
pointe droit sur la personne qui tient-2
(la liste représente un cercle, donc elle s'enroule aux extrémités).
Cela signifie que 0
, -2
et 3
sont éliminés, donc le deuxième tour se fait avec la liste [1,8]
. Ici, les 1
points sur 8
et les 8
points sur eux-mêmes 8
sont éliminés. Le troisième tour se fait avec la liste [1]
, où 1
il se pointe simplement et est éliminé. Il a fallu trois tours pour éliminer tous les participants, donc la sortie correcte est 3
.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas gagne et les failles standard sont interdites.
Cas de 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
est-ce le numéro que la personne détient?