Einführung
In dieser Herausforderung musst du eine bestimmte Art von Ausscheidungsspiel simulieren. Im Spiel stehen die Teilnehmer in einem Kreis und jeder hält eine ganze Zahl. In jeder Runde des Spiels zeigt jeder Teilnehmer auf die Person n
, die sich entfernt, wenn n
es sich um die Nummer handelt, die er hält. Wenn n
es positiv ist, zählen sie zu ihrer Rechten, wenn n
es negativ ist, zählen sie zu ihrer Linken und wenn n
es null ist, zeigen sie auf sich selbst. Jeder Teilnehmer, auf den jemand zeigt, scheidet aus und verlässt den Kreis. Damit ist die Runde beendet. Die Runden werden fortgesetzt, bis keine Teilnehmer mehr übrig sind.
Eingang
Ihre Eingabe ist eine nicht leere Liste von ganzen Zahlen in einem beliebigen vernünftigen Format. Es stellt die Zahlen dar, die die Teilnehmer des Spiels halten.
Ausgabe
Ihre Ausgabe ist die Anzahl der Runden, die es dauert, bis das Spiel endet.
Beispiel
Betrachten Sie die Eingabeliste [3,1,-2,0,8]
. In der ersten Runde passiert Folgendes:
- Die Person, die hält,
3
zeigt direkt auf die Person, die hält0
. - Die Person, die hält,
1
zeigt direkt auf die Person, die hält-2
. - Die Person, die
-2
Punkte bei der Person, die hält, übrig hat3
. - Die Person, die
0
Punkte auf sich hält. - Die Person, die hält,
8
zeigt direkt auf die Person, die hält-2
(die Liste stellt einen Kreis dar, sodass sie an den Enden umläuft).
Dies bedeutet , dass 0
, -2
und 3
eliminiert werden, so dass die zweite Runde mit der Liste getan [1,8]
. Hier 1
zeigt auf 8
und 8
zeigt auf sich selbst, so 8
wird beseitigt. Die dritte Runde erfolgt mit der Liste [1]
, in der 1
einfach auf sich selbst zeigt und beseitigt wird. Es dauerte drei Runden, um alle Teilnehmer auszuschließen, daher ist die Ausgabe korrekt 3
.
Regeln und Wertung
Sie können ein vollständiges Programm oder eine Funktion schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
[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
Ist die Nummer, die die Person in der Hand hält?