소들의 정치
면접 대비시간 제한2초메모리 제한128 MB
트리의 각 노드가 K개 정당 중 하나에 속할 때, 각 정당에 속한 노드들 사이의 최대 거리인 지름을 구한다.
문제
농부 존의 소들은 번으로 번호가 매겨진 개의 목초지()에서 산다. 길이가 모두 인 양방향 길이 정확히 개 있어서, 어떤 목초지에서 출발하든 다른 모든 목초지에 도달할 수 있다. 즉, 목초지와 길은 하나의 트리를 이룬다.
각 목초지 는 부모 ()로 주어진다. 루트 목초지는 이며, 부모가 없다는 뜻이다.
소들은 번으로 번호가 매겨진 개의 정당()을 만들었다. 모든 소는 정확히 하나의 정당에 속하며, 소 는 정당 ()에 속한다. 각 정당에는 소가 최소 두 마리 있다.
정당의 범위란 그 정당에 속한 두 소 사이의 최대 거리이다. 두 소 사이의 거리는 두 소가 있는 목초지를 잇는 경로에 포함된 길의 개수이다.
예를 들어 정당 1이 소 1, 3, 6으로, 정당 2가 소 2, 4, 5로 이루어져 있고, 목초지가 아래처럼 연결되어 있다고 하자(정당 1에 속한 소는 양옆에 -가 붙어 있다).
-3-
|
-1-
/ | \
2 4 5
|
-6-
정당 1에 속한 두 소 사이의 최대 거리는 3이고(소 3과 소 6 사이), 정당 2의 최대 거리는 2이다(예: 소 2와 소 4 사이). 따라서 정당 1의 범위는 3, 정당 2의 범위는 2이다.
각 정당의 범위를 구하라.
입력
- 첫째 줄: 공백으로 구분된 두 정수 과 .
- 번째 줄: 번째 줄에는 목초지 를 나타내는, 공백으로 구분된 두 정수 와 가 주어진다.
출력
- 번째 줄: 번째 줄에 정당 의 범위를 나타내는 정수 하나를 출력한다.