AYBABTU
시간 제한10초메모리 제한512 MB
기지 노드가 든 트리에서 간선 k개를 잘라 생기는 k+1개 영역이 모두 기지를 포함하게 하는 최소 절단 비용을 구합니다.
문제
정점이 개이고 간선이 개인 트리가 있다. 개의 정점 중 개에는 군사 기지가 있다. 간선 개를 파괴해서 기지를 최대한 서로 떼어 놓으려고 한다. 간선 개를 파괴하면 트리는 개의 영역으로 나뉜다. 기지를 떼어 놓는 것이 목적이므로, 개의 영역이 모두 기지를 하나 이상 포함하는 분할만 생각한다. 간선을 하나 파괴할 때마다 그 간선의 파괴 비용을 내야 한다. 트리를 나누는 최소 파괴 비용을 구하라.
이므로 조건을 만족하는 분할은 항상 존재한다.
입력
입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트의 첫 줄에는 정수 , , 가 주어진다 (, , ). 다음 개 줄에는 간선을 나타내는 정수 세 개가 주어진다. 앞의 두 정수는 그 간선이 잇는 두 정점의 번호이고, 정점 번호는 이하의 자연수다. 마지막 정수는 그 간선의 파괴 비용이며, 이하의 음이 아닌 정수다. 이어지는 개 줄에는 기지가 있는 정점의 번호가 한 줄에 하나씩 서로 다르게 주어진다. 입력의 마지막 줄에는 0이 세 개 주어지며, 이 줄은 처리하지 않는다.
출력
각 데이터 세트마다 Case x: c 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 데이터 세트 번호이고, 는 트리를 나누는 최소 파괴 비용이다.