| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 578 | 173 | 153 | 36.516% |
찬솔이는 N개의 노드에 정수가 적혀있는 이진 검색 트리를 만들었다. 이진 검색 트리는 모든 노드 i에 대해서, i의 왼쪽 자손 노드에 적힌 수는 모두 i에 적힌 수보다 작고, i의 오른쪽 자손 노드에 적힌 수는 모두 i에 적힌 수보다 큰 이진 트리이다.
찬솔이는 모든 i에 대해서 이진 검색 트리의 i번 노드의 깊이 Hi와 이진 검색 트리의 i번 노드에 적힌 정수 Ai를 기록해두었다. 이때, Ai는 모두 다르고 루트 노드의 깊이는 1이다. (1 ≤ i ≤ N)
찬솔이는 ICPC World Finals에 다녀오는 동안 이진 검색 트리를 잃어버렸다. 찬솔이를 위해 이전에 기록해둔 정보를 이용하여 이진 검색 트리를 복원해주자.
첫 줄에 노드의 개수 N이 주어진다. (1 ≤ N ≤ 200 000)
둘째 줄부터 N개의 줄에 걸쳐 트리의 노드 정보가 주어진다. 모든 1 ≤ i ≤ N에 대해, (i + 1)번째 줄에는 i번 노드에 적힌 정수 Ai와 i번 노드의 깊이 Hi가 공백으로 구분되어 주어진다. (−2 ⋅ 109 ≤ Ai ≤ 2 ⋅ 109; 1 ≤ Hi ≤ N) Ai는 모두 다르다.
만약 주어진 기록으로 이진 검색 트리를 복원할 수 없다면 −1을 출력한다.
복원할 수 있다면 트리의 구조를 N개의 줄에 걸쳐 출력한다.
i번째 줄에는 i번 노드의 왼쪽 자식과 오른쪽 자식의 노드 번호를 출력한다. 자식이 없으면 자식의 노드 번호로 −1을 출력한다.
만약 복원할 수 있는 트리가 여러 개라면 아무거나 복원해도 된다.
3 1 2 2 1 3 2
-1 -1 1 3 -1 -1
3 1 1 2 2 3 2
-1
3 2 2 5 3 4 2
-1
3 100 2 200 1 300 2
-1 -1 1 3 -1 -1
University > 전국 대학생 프로그래밍 대회 동아리 연합 > UCPC 2024 예선 D번