해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
원의 둘레에 일정한 간격으로 n개의 점이 표시되어 있다. 각 점에는 수가 하나씩 적혀 있다. 양의 실수 k를 하나 선택한다. 그 후 일정한 간격으로 배치된 2개 이상의 점으로 이루어진 집합을 반복해서 선택하여, 그 집합에 속한 모든 점의 수를 k만큼 증가시키거나 k만큼 감소시킬 수 있다. 최종적으로 모든 수를 0으로 만들고자 한다. 이것이 가능한지 판단하라.
2개의 점으로 이루어진 집합은 두 점이 지름의 양 끝에 있을 때 일정한 간격으로 배치되었다고 간주하며, 3개 이상의 점으로 이루어진 집합은 그 점들이 정다각형을 이룰 때 일정한 간격으로 배치되었다고 간주한다.
입력의 첫 번째 줄에는 원을 따라 놓인 점의 수를 나타내는 정수 n (3 ≤ n ≤ 100000)이 주어진다.
다음 줄에는 각 점에 처음 적혀 있는 수를 시계 방향 순서로 나타내는, 정확히 n개의 숫자로 이루어진 문자열 s가 주어진다.
모든 수가 0이 되도록 하는 연산 순서가 존재하면 "YES"을, 그렇지 않으면 "NO"을 출력한다. 따옴표는 출력하지 않는다.
각 문자는 대문자나 소문자 중 어느 것으로 출력해도 된다.
6
314159
NO
30
000100000100000110000000001100
YES
점에 1부터 n까지 번호를 붙이면, 첫 번째 테스트 케이스에서는 k = 1로 정할 수 있다. 그런 다음 점 7과 22의 수를 1만큼 증가시키고, 이어서 점 7, 17, 27의 수를 1만큼 감소시킨 뒤, 점 4, 10, 16, 22, 28의 수를 1만큼 감소시킨다.