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

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

검역소

시간 제한3초메모리 제한256 MB

요약
가중치가 있는 트리의 간선 K개를 차단막으로 골라, 남은 연결 요소 중 인구 합이 가장 큰 것의 값을 최소로 만든다.
난이도

어려움10점 중 8점

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

문제

연약한 사람들이 모여 사는 나라가 있다. 이 나라에는 도시가 NN개 있고 두 도시를 잇는 길이 N−1N-1개 있어서, 어느 두 도시 사이에도 이동 경로가 정확히 하나씩 존재한다.

이 나라에는 몇 년에 한 번씩 전염병이 크게 번져 큰 피해를 남긴다. 정부는 이 문제를 해결하려고 N−1N-1개의 길 가운데 KK개를 골라 그 길에 검역소를 세우려고 한다. 검역소가 세워진 길은 감염된 사람이 지나갈 수 없어서 전염병을 막는 장벽이 된다.

검역소만으로 전염병을 없앨 수는 없다. 그래서 정부는 치료제를 미리 비축해 두려고 한다. 어느 도시의 어떤 사람이 처음 감염되더라도, 그 유행으로 감염될 수 있는 모든 사람이 치료제를 하나씩 받을 수 있어야 한다. 검역소 KK개를 가장 잘 배치했을 때 비축해야 하는 치료제의 최소 개수를 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 도시의 개수 NN(2≤N≤1000002 \le N \le 100000)과 세울 수 있는 검역소의 개수 KK(1≤K≤N−11 \le K \le N-1)가 주어진다.

둘째 줄에는 자연수 NN개가 주어진다. ii번째 수 XiX_i(1≤Xi≤10000000001 \le X_i \le 1000000000)는 ii번 도시의 인구다.

셋째 줄부터 N−1N-1개의 줄에 길의 정보가 한 줄에 하나씩 주어진다. 각 줄에는 두 정수 AiA_i, BiB_i(1≤Ai≤N1 \le A_i \le N, 1≤Bi≤N1 \le B_i \le N)가 주어지며, AiA_i번 도시와 BiB_i번 도시가 길로 이어져 있다는 뜻이다.

출력

각 테스트 케이스마다 비축해야 하는 치료제의 최소 개수를 한 줄에 하나씩 출력한다.

힌트

첫 번째 예제에서 3번 도시와 5번 도시를 잇는 길, 4번 도시와 3번 도시를 잇는 길에 검역소를 세우면 치료제 11인분으로 충분하다. 1번 도시에서 전염병이 시작되면 1번과 3번 도시의 10명이, 2번 도시에서 시작되면 2번과 4번 도시의 11명이, 3번 도시에서 시작되면 10명이, 4번 도시에서 시작되면 11명이, 5번 도시에서 시작되면 5명이 감염될 수 있다. 어느 경우에도 11인분이면 모자라지 않는다.

예제2

  1. 예제 1

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

    입력
    1
    2 1
    7 4
    1 2
    
    예상 출력
    7