소 체조

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

문제

존 농부는 목장을 가로지르는 소들의 길에서 소들을 운동시켜 건강을 유지시킵니다. 이 길들은 양방향 간선으로 연결된 정점들의 집합이며, 모든 정점 쌍 사이에 정확히 하나의 단순 경로가 존재합니다. 즉, 전체 구조는 트리입니다. 모든 간선의 길이는 $1$로 같습니다.

주어진 길의 집합에 대해, 소들은 임의의 두 정점 사이의 가장 먼 거리를 경로 길이(pathlength) 라고 부릅니다. 이 경로 길이가 너무 크면 소들은 운동을 거부합니다.

농부의 지도에는 $V$ ($2 \le V \le 100000$)개의 정점이 있고, $1 \ldots V$로 번호가 매겨져 있습니다. 더 짧은 길을 만들기 위해 농부는 인접한 두 정점 사이의 연결을 막을 수 있습니다. 하나를 막을 때마다 하나의 길 집합이 두 개로 나뉜며, 두 집합 모두의 경로 길이가 줄어듭니다.

하나로 완전히 연결된 길 집합(트리)에서 시작하여, 농부는 정확히 $S$ ($1 \le S \le V-1$)개의 간선을 막아 $S+1$개의 서로 분리된 길 집합을 만듭니다. 모든 집합의 경로 길이 중 가장 큰 값이 최소가 되도록 막을 간선을 고르고, 그때의 최솟값을 구하세요.

트리는 $V-1$개의 간선으로 주어지며, 각 간선은 두 정점 $A_i$와 $B_i$ ($1 \le A_i, B_i \le V$; $A_i \ne B_i$)를 연결합니다.

예를 들어, 다음과 같은 거의 일직선인 길 집합(정점 7개짜리 트리)을 생각해 봅시다:

1---2---3---4---5---6---7

농부가 간선 두 개를 막을 수 있다면, 다음과 같이 나눌 수 있습니다:

1---2 | 3---4 | 5---6---7

이때 가장 큰 경로 길이는 $2$이며, 이보다 더 잘할 수는 없으므로 답은 $2$입니다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $V$와 $S$.
  • $2 \ldots V$번째 줄: 공백으로 구분된 두 정수 $A_i$와 $B_i$. 트리의 간선 하나를 나타냅니다.

출력

  • 정수 하나: 농부가 간선 $S$개를 막은 뒤 얻을 수 있는, 가장 큰 경로 길이의 최솟값.