만드는 중입니다

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

변환된 수열

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

요약
각 D_i가 주어질 때, 원형 거리 D(i, T_i)가 모두 D_i와 같은 순열 T 중 사전순으로 가장 작은 것을 구합니다. 없으면 No Answer를 출력합니다.
난이도

보통10점 중 7점

유형
그리디, 그래프
정답자
아직 제출이 없습니다

문제

정수 0,1,…,N−10, 1, \ldots, N-1에 대해 변환된 수열 TT는 각 ii를 TiT_i로 바꾼다. 여기서 Ti∈{0,1,…,N−1}T_i \in \{0, 1, \ldots, N-1\}이고, ⋃i=0N−1{Ti}={0,1,…,N−1}\bigcup_{i=0}^{N-1} \{T_i\} = \{0, 1, \ldots, N-1\}이다. 모든 x,y∈{0,1,…,N−1}x, y \in \{0, 1, \ldots, N-1\}에 대해 xx와 yy의 거리는 D(x,y)=min⁡{∣x−y∣,N−∣x−y∣}D(x, y) = \min\{|x - y|, N - |x - y|\}로 정의한다. 각 ii에 대해 거리 D(i,Ti)D(i, T_i)가 주어질 때, 이 조건을 만족하는 변환된 수열 TT를 구하라. 조건을 만족하는 수열이 여럿이면 사전순으로 가장 작은 것을 출력하라.

참고: 두 변환된 수열 SS와 TT에 대해, p<Np < N인 pp가 존재하여 i=0,1,…,p−1i = 0, 1, \ldots, p-1에서 Si=TiS_i = T_i이고 Sp<TpS_p < T_p이면, SS가 TT보다 사전순으로 작다고 한다.

입력

첫 줄에 수열의 길이 NN이 주어진다. 다음 줄에는 NN개의 정수 DiD_i가 주어지며, DiD_i는 ii와 TiT_i의 거리이다.

출력

변환된 수열 TT가 존재하면, 사전순으로 가장 작은 TT를 NN개의 정수로 한 줄에 출력한다. 존재하지 않으면 No Answer를 출력한다. 인접한 수는 공백 하나로 구분하고, 줄 끝에 공백을 두지 않는다.

제한

N≤10000N \le 10000

예제1

  1. 예제 1

    입력
    5
    1 1 2 2 1
    
    예상 출력
    1 2 4 0 3