Вступ
У цьому виклику ваше завдання - імітувати певний тип гри на усунення. У грі учасники стоять у колі, і всі тримають ціле число. На кожному раунді гри кожен учасник вказує людині 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є число, яке тримає людина?