https://www.acmicpc.net/problem/2250
import sys
sys.setrecursionlimit(10**8)
n = int(input())
child = [[] for _ in range(n+1)]
root = set([x for x in range(1, n+1)])
for _ in range(n):
p, a, b = [int(x) for x in input().split()]
child[p].append(a)
child[p].append(b)
if a != -1:
root.remove(a)
if b != -1:
root.remove(b)
tree = [0]
def inorder(x, depth) :
global tree, n
if x >= 1: # -1 : leaf노드 순회 중지
inorder(child[x][0], depth+1) #왼쪽 자식 노드 호출
tree.append((x, depth))
inorder(child[x][1], depth+1) #오른쪽 자식 노드 호출
inorder(list(root)[0], 1)
row = [set() for _ in range(n+1)]
max_row = 1
for i in range(1,n+1):
num, d = tree[i]
row[d].add(i)
max_row = max(max_row, d)
max_width = 1
asw_row = max_row
for i in range(max_row, 0, -1):
width = max(row[i]) - min(row[i]) + 1
max_width = max(max_width, width)
if max_width == width:
asw_row = i
print(f"{asw_row} {max_width}")