60009 점프 Platinum V
문제
이상의 에 대해 부터 까지의 번호가 붙은 개의 정점이 번호 순서대로 일직선상에 놓여있고, 각 ()에 대해 정점 와 을 양방향으로 잇는 간선이 있는 상황을 고려하자.
예를 들어, 인 경우에는 아래 그림과 같이 정점과 간선이 배치된다.

정올이는 이 그래프 위에서 점프하여 이동할 수 있다. 정올이가 어느 한 정점에서 다른 정점으로 점프하면, 그 사이에 있는 모든 간선을 한 번씩 지나간다.
예를 들어:
- 정올이가 정점 에서 로 점프했다면, 정올이는 정점 과 사이의 간선과 정점 와 사이의 간선을 각각 한 번씩 지나간다.
- 정올이가 정점 에서 로 점프했다면 정점 과 사이의 간선을 한 번 지나간다.
정올이는 정점 에서 시작해 번의 점프를 거쳐 정점 에 도착했고, 그 과정에서 모든 정점을 정확히 한 번씩 방문했다. (처음에 정점 에 있었던 것도 방문으로 간주한다.)
다시 말해, 정올이가 정점들을 방문한 순서를 이라고 할 때, 이고, 이며, 이다.
이때, 정올이가 점프하는 과정에서 각 ()에 대해 정점 와 사이 간선을 지나간 횟수를 라고 하자.
예를 들어, 정올이가 순서로 방문했다면, 이 된다.

정올이가 정점들을 방문하면서 각 간선을 지난 횟수를 나타내는 수열 이 주어졌을 때, 이로부터 정올이의 방문 순서 을 구하는 프로그램을 작성하라.
주어지는 수열 는 항상 어떤 방문 순서에 의해 만들어진 것이므로, 이를 만족하는 방문 순서는 항상 존재한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 구하면 된다.
입력
첫 번째 줄에 정점의 개수 이 주어진다.
두 번째 줄에 개의 정수 이 공백을 사이에 두고 주어진다. 이때, 는 정점 와 사이의 간선을 지나간 횟수를 의미한다.
출력
정올이의 가능한 방문 순서 을 공백으로 구분하여 출력한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 출력한다.
제한
- 주어지는 모든 수는 정수이다.
- 인 모든 에 대해
- 가능한 방문 순서가 존재하는 입력만 주어진다.
서브태스크
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 10 | . |
| 2 | 10 | 인 모든 에 대해 . |
| 3 | 15 | 이며, 이상 이하의 어떤 정수 이 존재해, 이고 이다. 다시 말해, 가 단조 증가하다가 단조 감소하는 형태를 가진다. |
| 4 | 35 | . |
| 5 | 30 | 추가 제약 조건 없음. |
예제 입출력
5
1 3 3 1
1 3 4 2 5
7
1 3 3 5 3 1
1 6 2 3 5 4 7