페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1563

가지치기 1초 64MB

문제

간선의 가중치가 음수가 아닌 무방향 트리가 주어진다. 하나의 노드는 루트로 주어지며 나머지 노드는 루트로 가는 경로가 유일하다. 루트가 아니면서 자식이 없는 노드는 잎 노드이다.

루트로부터 연결된 간선들 중 일부를 잘라내어 주어진 트리의 모든 잎 노드를 제거하려고 한다. 이때 잘려지는 간선들의 가중치 합이 최소가 되도록 하고 싶다. 이를 구하는 프로그램을 작성하시오.


입력

입력은 여러 개의 테스트 케이스를 포함한다. 각 테스트 케이스의 첫 행은 노드의 개수 N ( 1≤N≤1000) 과 루트가 되는 노드의 번호 R ( 1≤R≤N ) 이 주어진다. 다음 N-1 개의 행에는 노드간의 연결 정보 Ui, Vi( 1≤Ui, Vi≤N), Wi( 0≤Wi≤1000) 가 공백을 구분하여 주어진다. 중복된 간선 정보는 주어지지 않는다. 입력의 끝은 0 0 이다.


출력

각 테스트 케이스에 대하여 트리의 임의의 잎 노드로부터 루트까지 경로가 없도록 모든 잎 노드들을 제거하는데 드는 최소비용의 합을 행으로 구분하여 출력하시오.


예제1

입력
1515

121
232
253
567
465
674
5156
151011
10135
13144
12133
9108
892
9113
00
출력
16

역링크 공식 문제집만