Вступление
В этом задании ваша задача - смоделировать игру определенного типа. В игре участники стоят в кругу, и все держат целое число. В каждом раунде игры каждый участник указывает на человека, n
отступающего, если n
это число, которое он держит. Если n
положительный, они считают справа, если n
отрицательный, они считают слева, а если n
ноль, они указывают на себя. Каждый участник, на которого кто-то указывает, исключается и покидает круг; это заканчивается раунд. Раунды продолжаются до тех пор, пока не останется ни одного участника.
вход
Ваш ввод представляет собой непустой список целых чисел в любом приемлемом формате. Он представляет собой числа, которые держат участники игры.
Выход
Ваш результат - это количество раундов, которое требуется до окончания игры.
пример
Рассмотрим список ввода [3,1,-2,0,8]
. В первом раунде происходит следующее:
- Лицо, занимающее
3
очки прямо на человека, держащего0
. - Лицо, занимающее
1
очки прямо на человека, держащего-2
. - Лицо, занимающее
-2
очки, осталось у человека, держащего3
. - Человек держит
0
очки на себя. - Человек, держащий
8
точки, прямо на человека, который держит-2
(список представляет собой круг, поэтому он оборачивается на концах).
Это означает , что 0
, -2
и 3
отпадают, так что второй раунд делается со списком [1,8]
. Здесь, 1
указывает на 8
, и 8
указывает на себя, поэтому 8
устраняется. Третий раунд делается со списком [1]
, где 1
просто указывает на себя и исключается. Потребовалось три раунда, чтобы устранить всех участников, поэтому правильный вывод 3
.
Правила и оценки
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Контрольные примеры
[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
номер ли человек держит?