Wprowadzenie
W tym wyzwaniu Twoim zadaniem jest symulacja pewnego rodzaju gry eliminacyjnej. W grze uczestnicy stoją w kręgu, a wszyscy trzymają liczbę całkowitą. W każdej rundzie gry każdy uczestnik wskazuje na osobę noddalającą się, jeśli njest to liczba, którą trzyma. Jeśli njest dodatnia, liczą się po prawej stronie, jeśli njest ujemna, liczą po lewej, a jeśli nwynosi zero, wskazują na siebie. Każdy uczestnik, który ma na siebie kogoś wskazującego, zostaje wyeliminowany i opuszcza krąg; to kończy rundę. Rundy trwają, dopóki nie pozostanie żaden uczestnik.
Wejście
Twoje dane wejściowe to niepusta lista liczb całkowitych, w dowolnym rozsądnym formacie. Reprezentuje liczby, które trzymają uczestnicy gry.
Wynik
Twój wynik to liczba rund potrzebnych do zakończenia gry.
Przykład
Rozważ listę danych wejściowych [3,1,-2,0,8]. W pierwszej rundzie następują:
- Osoba trzymająca
3wskazuje bezpośrednio na osobę trzymającą0. - Osoba trzymająca
1wskazuje bezpośrednio na osobę trzymającą-2. - Osoba trzymająca
-2punkty pozostawione na osobę trzymającą3. - Osoba trzymająca
0wskazuje na siebie. - Osoba trzymająca
8wskazuje bezpośrednio na osobę trzymającą-2(lista reprezentuje okrąg, więc zawija się na końcach).
Oznacza to, że 0, -2i 3są eliminowane, więc druga tura odbywa się z listy [1,8]. Tutaj 1wskazuje na 8i 8punktów na samym sobą, więc 8jest wyeliminowana. Trzecia runda składa się z listy [1], w której 1po prostu wskazuje na siebie i jest eliminowana. Eliminacja wszystkich uczestników zajęła trzy rundy, więc prawidłowy wynik to 3.
Zasady i punktacja
Możesz napisać pełny program lub funkcję. Wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
[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
nczy numer jest w posiadaniu osoby?