| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 2048 MB | 260 | 154 | 116 | 61.702% |
2ドル$ 이상의 $N$에 대해 1ドル$부터 $N$까지의 번호가 붙은 $N$개의 정점이 번호 순서대로 일직선상에 놓여있고, 각 $i$ (1ドル ≤ i ≤ N − 1$)에 대해 정점 $i$와 $i + 1$을 양방향으로 잇는 간선이 있는 상황을 고려하자.
예를 들어, $N = 5$인 경우에는 아래 그림과 같이 정점과 간선이 배치된다.
정올이는 이 그래프 위에서 점프하여 이동할 수 있다. 정올이가 어느 한 정점에서 다른 정점으로 점프하면, 그 사이에 있는 모든 간선을 한 번씩 지나간다.
예를 들어:
정올이는 정점 1ドル$에서 시작해 $N − 1$번의 점프를 거쳐 정점 $N$에 도착했고, 그 과정에서 모든 정점을 정확히 한 번씩 방문했다. (처음에 정점 1ドル$에 있었던 것도 방문으로 간주한다.)
다시 말해, 정올이가 정점들을 방문한 순서를 $p_1 → p_2 → \cdots → p_{N-1} → p_N$ 이라고 할 때, $p_1 = 1$이고, $p_N = N$ 이며, $\{p_1 , p_2 ,\cdots , p_N \} = \{1, 2, \cdots , N\}$이다.
이때, 정올이가 점프하는 과정에서 각 $i$ (1ドル ≤ i ≤ N − 1$)에 대해 정점 $i$와 $i + 1$ 사이 간선을 지나간 횟수를 $c_i$라고 하자.
예를 들어, 정올이가 $(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 = 1$이 된다.
정올이가 정점들을 방문하면서 각 간선을 지난 횟수를 나타내는 수열 $c = (c_1 , c_2 ,\cdots , c_N-1)$이 주어졌을 때, 이로부터 정올이의 방문 순서 $p_1 , p_2 ,\cdots , p_N$을 구하는 프로그램을 작성하라.
주어지는 수열 $c$는 항상 어떤 방문 순서에 의해 만들어진 것이므로, 이를 만족하는 방문 순서는 항상 존재한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 구하면 된다.
첫 번째 줄에 정점의 개수 $N$이 주어진다.
두 번째 줄에 $N − 1$개의 정수 $c_1 , c_2 ,\cdots , c_{N-1}$이 공백을 사이에 두고 주어진다. 이때, $c_i$는 정점 $i$와 $i + 1$ 사이의 간선을 지나간 횟수를 의미한다.
정올이의 가능한 방문 순서 $p_1 , p_2 ,\cdots , p_N$을 공백으로 구분하여 출력한다. 만약 가능한 방문 순서가 여러 가지라면 아무것이나 하나 출력한다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 10 | $N ≤ 10$. |
| 2 | 10 | 1ドル ≤ i ≤ N − 1$인 모든 $i$에 대해 $c_i ≤ 3$. |
| 3 | 15 | $N ≥ 4$이며, 2ドル$ 이상 $N − 2$ 이하의 어떤 정수 $M$이 존재해, $c_1 ≤ c_2 ≤ \cdots ≤ c_M$ 이고 $c_M ≥ c_{M+1} ≥ \cdots ≥ c_{N-1}$ 이다. 다시 말해, $c_i$ 가 단조 증가하다가 단조 감소하는 형태를 가진다. |
| 4 | 35 | $N ≤ 300$. |
| 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
Olympiad > 한국정보올림피아드 > KOI 2025 2차대회 > 고등부 1번