사진 촬영

면접 대비

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

요약
1부터 N까지의 순열 a의 인접한 항의 합 b_i = a_i + a_{i+1}이 주어질 때, 이를 만족하는 순열 중 사전순으로 가장 작은 것을 복원한다.
난이도

보통10점 중 4점

유형
완전 탐색, 구현, 배열, 수학
정답자
아직 제출이 없습니다

문제

농부 존은 사진 촬영을 위해 1…N1\ldots N번이 붙은 소 NN마리(2≤N≤1032\le N\le 10^3)를 한 줄로 세우려 한다. 존은 처음에 왼쪽에서 ii번째 소가 a_ia\_i번 소가 되도록 할 계획이었고, 순열 a_1,a_2,…,a_Na\_1,a\_2,\ldots,a\_N을 종이에 적어 두었다. 그런데 얼마 전 농부 노이가 그 종이를 훔쳐 갔다.

다행히도 존이 처음 적었던 순열을 되찾을 가능성은 남아 있다. 종이가 훔쳐지기 전에 베시는 각 1≤i<N1\le i<N에 대해 b_i=a_i+a_i+1b\_i=a\_i+a\_{i+1}을 만족하는 수열 b_1,b_2,…,b_N−1b\_1,b\_2,\ldots,b\_{N-1}을 기록해 두었다.

베시의 정보를 바탕으로, bb를 만들 수 있었던 순열 aa 중 "사전순으로 최소"인 것을 복원하자. 순열 xx가 순열 yy보다 사전순으로 작다는 것은, 어떤 jj에 대해 모든 i<ji<j에서 x_i=y_ix\_i=y\_i이고 x_j<y_jx\_j<y\_j라는 뜻이다(두 순열이 어떤 지점까지 같고, 그 지점에서 xx가 yy보다 작다). 그러한 aa가 적어도 하나 존재함은 보장된다.

입력

첫째 줄에 정수 NN이 주어진다.

둘째 줄에 공백으로 구분된 N−1N-1개의 정수 b_1,b_2,…,b_N−1b\_1,b\_2,\ldots,b\_{N-1}이 주어진다.

출력

공백으로 구분된 NN개의 정수 a_1,a_2,…,a_Na\_1,a\_2,\ldots,a\_N을 한 줄에 출력한다.

힌트

aa가 bb를 만드는 이유는 3+1=43+1=4, 1+5=61+5=6, 5+2=75+2=7, 2+4=62+4=6이기 때문이다.

예제1

  1. 예제 1

    입력
    5
    4 6 7 6
    
    예상 출력
    3 1 5 2 4