집으로 돌아가기
시간 제한2초메모리 제한512 MB
집이 1번, 사무실이 n번 교차점인 나무에서, 시야 규칙에 따른 무작위 이동이 항상 10^9보 이내에 집에 도착하도록 하는 손전등의 최소 범위 d를 구한다.
문제
아르만은 최근 시골의 외딴 마을로 이사했다. 마을 지도는 트리 모양이다. 즉 개의 교차로를 잇는 도로가 정확히 개 있고, 어느 두 교차로 사이에도 도로를 따라가는 경로가 있다.
아르만은 아침마다 사무실로 가고 밤늦게 집으로 돌아온다. 밤에는 매우 어둡고 마을 도로에는 가로등이 없어서 아르만은 집으로 돌아오는 길을 찾기가 어려워졌다. 교차로에는 표지판이 없고 교차로를 서로 구별할 수도 없다. 게다가 길에서는 휴대전화 신호가 잡히지 않아 GPS도 쓸 수 없다. 이 문제를 해결하려고 아르만은 손전등을 사기로 했다. 손전등의 조명 거리는 정수이고, 조명 거리가 길수록 값이 비싸다. 조명 거리가 인 손전등은 지금 있는 교차로에서 거리가 이하인 교차로를 모두 비춘다. 마을의 모든 도로는 길이가 1로 같다.
사무실에서 집으로 출발한 아르만은 지나가는 교차로마다 다음과 같이 판단한다.
- 집이 보이면 집을 향해 곧바로 이동한다.
- 지금 교차로 에 있다고 하자. 는 에 연결된 모든 도로의 집합이다. 는 출발 시점에는 공집합이고, 그 외에는 아르만이 로 들어올 때 지나온 도로 하나만 담은 집합 이다. 는 에 연결된 쓸모없는 도로의 집합이다. 에서 출발해 도로 를 지나는 모든 단순 경로의 길이가 보다 작으면, 에 연결된 도로 를 쓸모없다고 한다. 가 공집합이 아니면 이 집합에서 도로 하나를 무작위로 고른다. 공집합이면 도로 를 다시 고른다.
무작위로 어떻게 고르더라도 도로를 최대 개만 지나면 결국 집에 도착한다는 보장만 있다면, 아르만은 조금 더 걷는 것을 개의치 않는다. 그런 보장을 받을 수 있는 가장 싼 손전등을 사려고 한다. 아르만이 집에 도착할 수 있는 손전등의 최소 조명 거리를 구하여라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 마을의 교차로 개수 이 주어진다 (). 다음 개의 줄에는 각각 두 정수 , 가 주어지며, 교차로 와 를 잇는 도로가 있다는 뜻이다 (). 아르만의 집은 1번 교차로이고 사무실은 번 교차로이다. 입력은 0 하나만 있는 줄로 끝나며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다, 무작위로 어떻게 고르더라도 아르만이 도로를 최대 개만 지나 집에 도착하도록 보장하는 손전등의 최소 조명 거리 를 한 줄에 출력한다. 손전등이 필요 없으면 0을 출력한다.