아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소 체조

면접 대비

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

요약
트리에서 간선 S개를 제거해 생기는 각 연결 요소의 지름 중 최댓값을 최소로 만들고, 그 최솟값을 출력한다.
난이도

보통10점 중 7점

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

문제

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

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

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

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

트리는 V−1V-1개의 간선으로 주어지며, 각 간선은 두 정점 AiA_i와 BiB_i (1≤Ai,Bi≤V1 \le A_i, B_i \le V; Ai≠BiA_i \ne B_i)를 연결합니다.

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

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

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

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

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

입력

  • 첫째 줄: 공백으로 구분된 두 정수 VV와 SS.
  • 2…V2 \ldots V번째 줄: 공백으로 구분된 두 정수 AiA_i와 BiB_i. 트리의 간선 하나를 나타냅니다.

출력

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

예제3

  1. 예제 1

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

    입력
    2 1
    1 2
    
    예상 출력
    0
    
  3. 예제 3

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