만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

구원의 수수께끼

면접 대비

시간 제한1초메모리 제한1024 MB

요약
주어진 배열 b를 만들 수 있는 원본 배열 a가 존재하는 이동량 x를 1부터 n-1까지 각각 판별합니다.
난이도

보통10점 중 5점

유형
수학, 정수론, 배열
정답자
아직 제출이 없습니다

문제

수수께끼 제작자가 지방 검사 길 콜슨을 납치한다.

콜슨이 살아남으려면 수수께끼 세 개를 풀어야 한다. 배트맨이 처음 두 개를 돕지만, 세 번째 수수께끼는 너무 어렵다. 이 수수께끼를 풀도록 도와줄 수 있겠는가?

수수께끼는 다음과 같이 만들어진다.

  1. 수수께끼 제작자가 길이 nn인 정수 배열 aa를 적어 숨긴다.
  2. 그다음 aa를 왼쪽으로 xx만큼 원형 이동한 뒤, 원래 배열에서 이동한 배열을 원소별로 뺀다.
  3. 결과 배열 bb (즉 모든 ii에 대해 bi=ai−a(i+x) mod nb_i = a_i - a_{(i + x) \bmod n}인 배열)를 수수께끼 제작자가 콜슨에게 알려준다.

배열 bb가 주어졌을 때, 어떤 배열 aa로부터 bb를 만들 수 있었던 모든 가능한 이동량 xx를 복원하라.

입력

첫 줄에 원래 배열의 길이 nn이 주어진다 (1⩽n⩽1061 \leqslant n \leqslant 10^6).

둘째 줄에는 수수께끼 제작자가 알려준 배열 bb의 원소 b1,b2,…,bnb_1, b_2, \ldots, b_n이 공백으로 구분되어 주어진다 (∣bi∣⩽109|b_i| \leqslant 10^9).

출력

공백으로 구분된 정수 n−1n - 1개를 출력하라. ii번째 정수는 x=ix = i가 가능했다면 1, 그렇지 않다면 0이다.

힌트

첫 번째 예제에서 이 배열 bb는 a=[2,4,4]a = [2, 4, 4]를 왼쪽으로 1만큼 이동한 결과이거나, a=[2,2,4]a = [2, 2, 4]를 왼쪽으로 2만큼 이동한 결과로 나올 수 있었다.

같은 예제에서 이 배열 bb는 3만큼 이동해서는 어떤 aa로도 나올 수 없었다. 반면 이동량 1이나 4에는 각각 a=[1,2,0,3,7,3]a = [1, 2, 0, 3, 7, 3]과 a=[3,7,0,3,4,5]a = [3, 7, 0, 3, 4, 5]가 가능하다.

세 번째 예제에서는 이 bb가 설명된 방식으로는 만들어질 수 없었음을 보일 수 있다.

예제3

  1. 예제 1

    입력
    3
    -2 0 2
    
    예상 출력
    1 1
    
  2. 예제 2

    입력
    6
    -1 2 -3 -4 4 2
    
    예상 출력
    1 1 0 1 1
    
  3. 예제 3

    입력
    7
    -1 1 -1 1 -1 1 -1
    
    예상 출력
    0 0 0 0 0 0