이진 트리 중위 순회 너비


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 2.0s
storage메모리 제한 : 128M
edit_square출제자:
 
답안 제출

이진 트리를 중위 순회한 순서에 따라 각 노드에 열 번호를 1부터 순차 배정한다.

각 레벨에 배정된 열 번호의 최대·최소 차이(너비)를 계산하여, 너비가 최대인 레벨 번호와 해당 너비를 출력하라.

너비가 같으면 레벨 번호가 작은 것을 출력한다.

입력

첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다.

다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다.

노드들의 번호는 1부터 N까지이며, 자식이 없는 경우에는 자식 노드의 번호에 -1이 주어진다.

출력

첫째 줄에 너비가 가장 넓은 레벨과 그 레벨의 너비를 순서대로 출력한다.

너비가 가장 넓은 레벨이 두 개 이상 있을 때에는 번호가 작은 레벨을 출력한다.

예제 입력 1

19
1 2 3
2 4 5
3 6 7
4 8 -1
5 9 10
6 11 12
7 13 -1
8 -1 -1
9 14 15
10 -1 -1
11 16 -1
12 -1 -1
13 17 -1
14 -1 -1
15 18 -1
16 -1 -1
17 -1 19
18 -1 -1
19 -1 -1

예제 출력 1

3 18

힌트

실제 기출문제의 문제 제목은 "이진트리의 너비" 이다.

댓글

현재 작성된 댓글이 없습니다.