소개
이 도전에서 당신의 임무는 특정 유형의 제거 게임을 시뮬레이션하는 것입니다. 게임에서 참가자는 원 안에 서 있으며 모두가 정수를 보유하고 있습니다. 게임의 각 라운드에서, 모든 참가자 는 자신이 보유하고있는 숫자 n인 경우 그 사람을 points니다 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]되는 list로 수행됩니다 1. 모든 참가자를 제거하는 데 3 라운드가 걸렸으므로 올바른 결과는 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사람이 보유하고있는 번호입니까?