만드는 중입니다

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

호텔 배정

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

요약
트리 모양으로 연결된 N개의 호텔 중 서로 다른 K개를 골라, 고른 호텔들 사이 거리의 합이 최대가 되는 값을 구합니다.
난이도

보통10점 중 6점

유형
트리, 동적 계획법
정답자
아직 제출이 없습니다

문제

경곽 마을은 NN개의 호텔과 N−1N-1개의 길로 이루어져 있다. 길 하나는 서로 다른 두 호텔을 잇고, 임의의 두 호텔은 길만 따라 오갈 수 있다. 즉, 경곽 마을은 트리 구조이다. 서로 다른 두 호텔 사이의 거리는 한 호텔에서 다른 호텔로 가는 데 지나야 하는 길 개수의 최솟값이다.

어느 날, KK명의 경기과고 학생이 경곽 마을로 수학여행을 왔다. 경기과고 학생들은 서로 사이가 좋지 않아서, 수학여행 총책임자 성호는 KK명의 학생을 서로 다른 호텔에 배정하려 한다. 또 학생들을 최대한 멀리 떨어뜨리기 위해, 배정된 KK개 호텔 중 서로 다른 두 호텔을 고르는 모든 경우의 거리 합을 최대화하려 한다.

구체적으로 d(i,j)d(i, j)를 ii번 학생과 jj번 학생에게 배정된 호텔 사이의 거리라 하자. ∑i=1K−1∑j=i+1Kd(i,j)\sum_{i=1}^{K-1}\sum_{j=i+1}^{K}d(i, j)를 최대화해야 한다. 성호를 도와 이 값의 최댓값을 구하자.

입력

첫째 줄에 두 정수 NN과 KK가 주어진다.

이후 N−1N-1개의 줄에 길로 연결된 두 호텔의 번호를 나타내는 정수 uu, vv가 주어진다.

출력

문제의 정답을 첫 줄에 출력한다.

제한

  • 1≤N≤100 0001 \le N \le 100\,000
  • 1≤K≤min⁡(N,500)1 \le K \le \min(N, 500)
  • 1≤u,v≤N1 \le u, v \le N
  • 마을은 트리 구조를 이룬다.

예제2

  1. 예제 1

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

    입력
    4 1
    1 2
    2 3
    3 4
    
    예상 출력
    0