스크루지 민호

트리에서 다른 모든 도시까지의 최대 거리를 가장 작게 만드는 도시에 소방서를 세울 때, 그 최대 거리를 구한다.

보통4트리그래프BFSDFS면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

구두쇠로 유명한 스크루지 민호가 다스리는 천나라에는 도시가 NN개 있다. 민호는 도로를 놓는 비용을 아끼려고 도로를 N1N-1개만 놓았고, 그래서 어떤 두 도시 사이에도 이동 경로가 정확히 하나만 있다.

소방서를 여러 개 짓는 것도 아까웠던 민호는 소방서를 도시 한 곳에만 짓기로 했다. 대신 위치는 최적인 곳으로 고른다. 최적의 위치란 소방차가 그 도시에서 출발해 다른 도시에 도착할 때까지 이동하는 거리의 최댓값이 가장 작아지는 도시를 뜻한다. 같은 도시 안에서 이동하는 거리는 없다고 보고, 도로 하나를 지나가는 거리는 1이다.

천나라에 있는 도시의 수와 도로의 연결 상태가 주어질 때, 최적의 위치에 지은 소방서에서 소방차가 다른 도시로 출동할 때 이동하는 거리의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 천나라에 있는 도시의 수 NN (2N1000002 \le N \le 100\,000)이 주어진다.

다음 N1N-1개의 줄에는 도로의 연결 상태가 한 줄에 하나씩 주어진다. 각 줄에는 공백으로 구분된 두 정수 uu, vv (1u,vN1 \le u, v \le N)가 주어지고, 이는 도시 uu와 도시 vv가 양방향 도로로 이어져 있다는 뜻이다. 주어지는 N1N-1개의 도로는 모든 도시를 하나로 연결한다.

출력

최적의 위치에 지은 소방서에서 소방차가 다른 도시에 도착할 때까지 이동하는 거리의 최댓값을 첫째 줄에 출력한다.