점프

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

요약
정점 1에서 N까지 모든 정점을 한 번씩 점프로 방문할 때 각 간선을 지난 횟수 c가 주어지면, 이를 만족하는 방문 순서 하나를 복원한다.
난이도

어려움10점 중 8점

유형
구현, 그리디, 재귀, 분할 정복
정답자
아직 제출이 없습니다

문제

22 이상의 NN에 대해 11부터 NN까지의 번호가 붙은 NN개의 정점이 번호 순서대로 일직선상에 놓여있고, 각 ii (1≤i≤N−11 ≤ i ≤ N − 1)에 대해 정점 ii와 i+1i + 1을 양방향으로 잇는 간선이 있는 상황을 고려하자.

예를 들어, N=5N = 5인 경우에는 아래 그림과 같이 정점과 간선이 배치된다.

정올이는 이 그래프 위에서 점프하여 이동할 수 있다. 정올이가 어느 한 정점에서 다른 정점으로 점프하면, 그 사이에 있는 모든 간선을 한 번씩 지나간다.

예를 들어:

  • 정올이가 정점 44에서 22로 점프했다면, 정올이는 정점 33과 44 사이의 간선과 정점 22와 33 사이의 간선을 각각 한 번씩 지나간다.
  • 정올이가 정점 33에서 44로 점프했다면 정점 33과 44 사이의 간선을 한 번 지나간다.

정올이는 정점 11에서 시작해 N−1N − 1번의 점프를 거쳐 정점 NN에 도착했고, 그 과정에서 모든 정점을 정확히 한 번씩 방문했다. (처음에 정점 11에 있었던 것도 방문으로 간주한다.)

다시 말해, 정올이가 정점들을 방문한 순서를 p_1→p_2→⋯→p_N−1→p_Np\_1 → p\_2 → \cdots → p\_{N-1} → p\_N 이라고 할 때, p_1=1p\_1 = 1이고, p_N=Np\_N = N 이며, p_1,p_2,⋯ ,p_N=1,2,⋯ ,N\\{p\_1 , p\_2 ,\cdots , p\_N \\} = \\{1, 2, \cdots , N\\}이다.

이때, 정올이가 점프하는 과정에서 각 ii (1≤i≤N−11 ≤ i ≤ N − 1)에 대해 정점 ii와 i+1i + 1 사이 간선을 지나간 횟수를 c_ic\_i라고 하자.

예를 들어, 정올이가 (p_1=1)→(p_2=3)→(p_3=4)→(p_4=2)→(p_5=5)(p\_1 = 1) → (p\_2 = 3) → (p\_3 = 4) → (p\_4 = 2) → (p\_5 = 5) 순서로 방문했다면, c_1=1,c_2=3,c_3=3,c_4=1c\_1 = 1, c\_2 = 3, c\_3 = 3, c\_4 = 1이 된다.

정올이가 정점들을 방문하면서 각 간선을 지난 횟수를 나타내는 수열 c=(c_1,c_2,⋯ ,c_N−1)c = (c\_1 , c\_2 ,\cdots , c\_N-1)이 주어졌을 때, 이로부터 정올이의 방문 순서 p_1,p_2,⋯ ,p_Np\_1 , p\_2 ,\cdots , p\_N을 구하는 프로그램을 작성하라.

주어지는 수열 cc는 항상 어떤 방문 순서에 의해 만들어진 것이므로, 이를 만족하는 방문 순서는 항상 존재한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 구하면 된다.

입력

첫 번째 줄에 정점의 개수 NN이 주어진다.

두 번째 줄에 N−1N − 1개의 정수 c_1,c_2,⋯ ,c_N−1c\_1 , c\_2 ,\cdots , c\_{N-1}이 공백을 사이에 두고 주어진다. 이때, c_ic\_i는 정점 ii와 i+1i + 1 사이의 간선을 지나간 횟수를 의미한다.

출력

정올이의 가능한 방문 순서 p_1,p_2,⋯ ,p_Np\_1 , p\_2 ,\cdots , p\_N을 공백으로 구분하여 출력한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 2≤N≤200,0002 ≤ N ≤ 200\\, 000
  • 1≤i≤N−11 ≤ i ≤ N − 1인 모든 ii에 대해 1≤c_i≤10181 ≤ c\_i ≤ 10^{18}
  • 가능한 방문 순서가 존재하는 입력만 주어진다.

예제2

  1. 예제 1

    입력
    5
    1 3 3 1
    
    예상 출력
    1 3 4 2 5
    
  2. 예제 2

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