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 nes sich um die Nummer handelt, die er hält. Wenn nes positiv ist, zählen sie zu ihrer Rechten, wenn nes negativ ist, zählen sie zu ihrer Linken und wenn nes 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,
3zeigt direkt auf die Person, die hält0. - Die Person, die hält,
1zeigt direkt auf die Person, die hält-2. - Die Person, die
-2Punkte bei der Person, die hält, übrig hat3. - Die Person, die
0Punkte auf sich hält. - Die Person, die hält,
8zeigt 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, -2und 3eliminiert werden, so dass die zweite Runde mit der Liste getan [1,8]. Hier 1zeigt auf 8und 8zeigt auf sich selbst, so 8wird beseitigt. Die dritte Runde erfolgt mit der Liste [1], in der 1einfach 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
nIst die Nummer, die die Person in der Hand hält?