만드는 중입니다

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

AYBABTU

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

요약
기지 노드가 든 트리에서 간선 k개를 잘라 생기는 k+1개 영역이 모두 기지를 포함하게 하는 최소 절단 비용을 구합니다.
난이도

보통10점 중 7점

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

문제

정점이 nn개이고 간선이 n−1n-1개인 트리가 있다. nn개의 정점 중 tt개에는 군사 기지가 있다. 간선 kk개를 파괴해서 기지를 최대한 서로 떼어 놓으려고 한다. 간선 kk개를 파괴하면 트리는 k+1k+1개의 영역으로 나뉜다. 기지를 떼어 놓는 것이 목적이므로, k+1k+1개의 영역이 모두 기지를 하나 이상 포함하는 분할만 생각한다. 간선을 하나 파괴할 때마다 그 간선의 파괴 비용을 내야 한다. 트리를 나누는 최소 파괴 비용을 구하라.

0≤k≤t−10 \le k \le t-1이므로 조건을 만족하는 분할은 항상 존재한다.

입력

입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트의 첫 줄에는 정수 nn, tt, kk가 주어진다 (1≤n≤100001 \le n \le 10000, 1≤t≤n1 \le t \le n, 0≤k≤t−10 \le k \le t-1). 다음 n−1n-1개 줄에는 간선을 나타내는 정수 세 개가 주어진다. 앞의 두 정수는 그 간선이 잇는 두 정점의 번호이고, 정점 번호는 nn 이하의 자연수다. 마지막 정수는 그 간선의 파괴 비용이며, 1000010000 이하의 음이 아닌 정수다. 이어지는 tt개 줄에는 기지가 있는 정점의 번호가 한 줄에 하나씩 서로 다르게 주어진다. 입력의 마지막 줄에는 0이 세 개 주어지며, 이 줄은 처리하지 않는다.

출력

각 데이터 세트마다 Case x: c 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 데이터 세트 번호이고, cc는 트리를 나누는 최소 파괴 비용이다.

예제2

  1. 예제 1

    입력
    2 2 1
    1 2 1
    1
    2
    4 3 2
    1 2 1
    1 3 2
    1 4 3
    2
    3
    4
    0 0 0
    
    예상 출력
    Case 1: 1
    Case 2: 3
    
  2. 예제 2

    입력
    3 2 1
    1 2 5
    2 3 1
    1
    2
    1 1 0
    1
    5 3 0
    1 2 7
    2 3 3
    3 4 9
    4 5 4
    1
    3
    5
    0 0 0
    
    예상 출력
    Case 1: 5
    Case 2: 0
    Case 3: 0