항공편 계획

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

NCPC 항공은 $1$번부터 $n$번까지 번호가 매겨진 $n$개의 도시 사이에서 항공편을 운항한다. 이 항공사는 양방향으로 운항하는 노선을 정확히 $n-1$개만 가지고 있지만, 어느 도시에서 출발하더라도 다른 모든 도시로 갈 수 있다. 따라서 두 도시 사이를 이동하는 항공편 경로는 항상 정확히 하나뿐이며, 전체 노선망은 하나의 트리를 이룬다.

일부 승객들은 목적지에 도착하기까지 항공편을 너무 많이 갈아타야 한다고 불평한다. 항공사는 노선망의 이러한 구조를 유지하면서 이를 개선하기 위해, 기존 노선 하나를 폐지하고 새로운 노선 하나를 개설하기로 했다. 이때에도 노선망은 여전히 $n-1$개의 노선으로 $n$개의 도시를 모두 연결해야 한다. 즉, 폐지 후 개설을 마친 노선망도 하나의 트리여야 한다.

이렇게 노선 하나를 폐지하고 하나를 개설하는 모든 방법 중에서, 가장 멀리 떨어진 두 도시 사이를 이동할 때 타야 하는 항공편 수의 최댓값을 최소화하는 방법을 찾고, 그 최소화된 최댓값을 출력하라.

입력은 항상 원래 노선망보다 결과를 엄밀하게 개선할 수 있도록 주어진다.

입력

첫째 줄에 도시의 수 $n$ ($4 \le n \le 2500$)이 주어진다.

다음 $n-1$개의 줄에는 각각 두 정수 $a$와 $b$ ($1 \le a, b \le n$)가 주어지며, 이는 도시 $a$와 도시 $b$를 잇는 양방향 노선을 나타낸다. 주어지는 노선들은 모든 도시를 연결하며 하나의 트리를 이룬다.

출력

노선 하나를 폐지하고 새 노선 하나를 개설한 뒤, 임의의 두 도시 사이를 이동할 때 타야 하는 항공편 수의 최댓값이 가질 수 있는 최솟값을 정수 하나로 출력하라.