촌수 계산
시간 제한1초메모리 제한128 MB
왼쪽부터 번호가 매겨진 잎들 사이의 이웃 촌수로 지정된 두 잎 사이의 촌수를 구합니다.
문제
한 가문의 족보는 뿌리 있는 트리(rooted tree)로 나타낼 수 있다. 각 노드는 가문의 구성원 한 명에 대응하고, 각 간선은 구성원과 그 부모를 잇는다. 뿌리(root)는 가문의 시조이며 족보 안에서 부모가 없고, 잎(leaf) 노드는 자식이 없는 구성원에 대응한다.
족보에서 두 구성원 사이의 거리를 한국에서는 촌수(ChonSu)라 하며, 두 사람을 잇는 경로 위의 간선 수로 정의한다. 예를 들어 아래 그림의 족보에서 1번과 3번 사이의 촌수는 3이고, 1번과 5번 사이의 촌수는 5이다. 앞으로 번과 번 구성원 사이의 촌수를 ChonSu(i, j)로 표기한다.

잎이 아닌 모든 노드가 정확히 두 개의 자식을 갖는 뿌리 있는 트리를 2-트리라 한다. 즉, 2-트리는 모든 노드가 자식을 두 개 갖거나 하나도 갖지 않는 이진 트리이다. 위 그림의 트리도 2-트리이다.
전체 족보를 알 수 없는 어떤 가문을 생각하자. 이 가문의 족보에 대해 알려진 것은, 그것이 2-트리이며 잎 노드가 개라는 사실이다. 잎 노드는 그림에서처럼 왼쪽에서 오른쪽 순서로 번 번호가 매겨져 있다고 하자. 또한 번호가 연속인 모든 잎 노드 쌍 사이의 촌수, 즉 모든 ()에 대한 ChonSu(i, i+1)이 알려져 있다.
이 정보만으로도 임의의 두 잎 노드 사이의 촌수를 계산할 수 있음이 잘 알려져 있다.
입력으로 주어지는 두 잎 구성원 , () 사이의 촌수 ChonSu(x, y)를 계산하는 프로그램을 작성하라.
위 그림을 예로 들면 , ChonSu(1, 2) = 3, ChonSu(2, 3) = 2, ChonSu(3, 4) = 5, ChonSu(4, 5) = 3, ChonSu(5, 6) = 2가 주어지며, 이로부터 과 사이의 촌수 ChonSu(1, 6)을 계산할 수 있다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스의 첫 줄에는 잎 노드의 개수 ()이 주어진다. 다음 줄에는 개의 정수 ChonSu(1, 2), ChonSu(2, 3), ..., ChonSu(n-1, n)이 순서대로 주어진다. 마지막 줄에는 촌수를 구하려는 두 잎 구성원의 번호 , ()가 주어진다.
출력
각 테스트 케이스마다 정확히 한 줄을 출력한다. 그 줄에는 두 잎 노드 , 사이의 촌수 ChonSu(x, y)를 나타내는 정수 하나를 출력한다.