이진 검색 트리 복원하기
면접 대비시간 제한2초메모리 제한1024 MB
각 노드의 값과 깊이가 주어질 때 이진 탐색 트리를 복원합니다. 가능한 트리가 없으면 -1을 출력합니다.
문제
찬솔이는 개의 노드에 정수가 적혀 있는 이진 검색 트리를 만들었다. 이진 검색 트리는 모든 노드 에 대해, 의 왼쪽 자손 노드에 적힌 수가 모두 에 적힌 수보다 작고, 의 오른쪽 자손 노드에 적힌 수가 모두 에 적힌 수보다 큰 이진 트리이다.
찬솔이는 모든 에 대해 이진 검색 트리의 번 노드의 깊이 와 번 노드에 적힌 정수 를 기록해 두었다. 이때 는 모두 다르고, 루트 노드의 깊이는 1이다. ()
찬솔이는 ICPC World Finals에 다녀오는 동안 이진 검색 트리를 잃어버렸다. 기록해 둔 정보를 이용해 이진 검색 트리를 복원하자.
입력
첫 줄에 노드의 개수 이 주어진다. ()
둘째 줄부터 개의 줄에 걸쳐 트리의 노드 정보가 주어진다. 모든 에 대해, 번째 줄에는 번 노드에 적힌 정수 와 번 노드의 깊이 가 공백으로 구분되어 주어진다. (, ) 는 모두 다르다.
출력
주어진 기록으로 이진 검색 트리를 복원할 수 없다면 -1을 출력한다.
복원할 수 있다면 트리의 구조를 개의 줄에 걸쳐 출력한다. 번째 줄에는 번 노드의 왼쪽 자식과 오른쪽 자식의 노드 번호를 출력한다. 자식이 없으면 그 자리에 -1을 출력한다.
복원할 수 있는 트리가 여러 개라면 아무거나 복원해도 된다.