만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

위임 (플래티넘)

시간 제한2초메모리 제한512 MB

요약
트리의 간선을 길이가 K 이상인 경로로 나눌 때, 가능한 가장 큰 K를 구합니다.
난이도

보통10점 중 7점

유형
트리, 이분 탐색, 그리디, DFS
정답자
아직 제출이 없습니다

문제

Farmer John의 농장은 NN개의 목초지(2≤N≤1052 \leq N \leq 10^5)가 N−1N-1개의 도로로 이어져 있어서, 어떤 목초지에서든 다른 모든 목초지로 갈 수 있다. 즉 이 농장은 트리이다. 하지만 FJ는 28년 동안 트리에서 필연적으로 생기는 까다로운 알고리즘 문제를 다뤄 본 끝에, 트리 모양의 농장은 너무 복잡하다고 결론 내렸다. 그는 알고리즘 문제가 경로 위에서는 더 단순하다고 믿는다.

그래서 그는 도로들의 집합을 여러 개의 경로로 나누고, 이 경로들의 관리를 일꾼들에게 맡기려 한다. 경로의 개수는 상관하지 않는다. 다만 어떤 일꾼도 점근적으로 비효율적인 알고리즘으로 넘어갈 수 없도록, 모든 경로의 길이가 최대한 길기를 원한다.

도로들을 길이가 KK 이상인 경로들로 나눌 수 있는 가장 큰 양의 정수 KK를 구하라.

입력

첫째 줄에 정수 NN이 주어진다.

다음 N−1N-1개의 줄에는 각각 공백으로 구분된 두 정수 aa와 bb가 주어지며, 이는 정점 aa와 bb를 잇는 간선을 나타낸다. aa와 bb는 모두 1…N1 \ldots N 범위에 있다.

출력

KK를 출력하라.

힌트

경로를 나누는 한 가지 방법은 다음과 같다: 2−1−6−7−8,3−1−4−52-1-6-7-8, 3-1-4-5

예제1

  1. 예제 1

    입력
    8
    1 2
    1 3
    1 4
    4 5
    1 6
    6 7
    7 8
    
    예상 출력
    3