Delegation (Platinum)

트리의 간선을 경로들로 분할할 때 가능한 최소 경로 길이의 최댓값을 구한다.

어려움9트리DFS그리디동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Farmer John's farm consists of NN pastures (2N1052 \leq N \leq 10^5) connected by N1N-1 roads, so that any pasture is reachable from any other pasture. That is, the farm is a tree. But after 28 years of dealing with the tricky algorithmic problems that inevitably arise from trees, FJ has decided that a farm in the shape of a tree is just too complex. He believes that algorithmic problems are simpler on paths.

Thus, his plan is to partition the set of roads into several paths and delegate responsibility for these path among his worthy farm hands. He doesn't care about the number of paths. However, he wants to make sure that these paths are all as large as possible, so that no farm hand can get away with asymptotically inefficient algorithms!

Help Farmer John determine the largest positive integer KK such that the roads can be partitioned into paths of length at least KK.

입력

The first line contains a single integer NN.

The next N1N-1 lines each contain two space-separated integers aa and bb describing an edge between vertices aa and bb. Both aa and bb are in the range 1N1 \ldots N.

출력

Print KK.

힌트

One possible set of paths is as follows: 21678,31452-1-6-7-8, 3-1-4-5