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 nqui s'éloigne, si tel nest le numéro qu'elle détient. Si nest positif, ils comptent à leur droite, s'ils nsont négatifs, ils comptent à leur gauche et s'ils nsont 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
3pointe droit sur la personne qui tient0. - La personne qui tient
1pointe droit sur la personne qui tient-2. - La personne qui tient
-2pointe vers la personne qui tient3. - La personne qui se
0montre du doigt. - La personne qui tient
8pointe 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, -2et 3sont éliminés, donc le deuxième tour se fait avec la liste [1,8]. Ici, les 1points sur 8et les 8points sur eux-mêmes 8sont éliminés. Le troisième tour se fait avec la liste [1], où 1il 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
nest-ce le numéro que la personne détient?