특별관광도시
시간 제한2초메모리 제한512 MB
간선마다 두 방향의 수리 비용이 있는 트리에서, E개의 도시를 특별 관광 도시로 정할 때 개인 자금으로 내는 수리 비용의 최솟값을 구합니다.
문제
JOI나라에는 개의 도시가 있고, 1번부터 번까지 번호가 붙어 있다. 도시 사이에는 개의 도로가 있고, 1번부터 번까지 번호가 붙어 있다. 번 () 도로에는 노선이 두 개 있다. 한 노선은 번 도시에서 번 도시로 가는 노선이고, 다른 노선은 번 도시에서 번 도시로 가는 노선이다. 모든 도로는 양방향이다. 어떤 두 도시든 도로를 몇 개 거쳐 서로 이동할 수 있다.
처음에는 어떤 노선도 정비되어 있지 않다. 번 도로의 번 도시에서 번 도시로 가는 노선을 정비하는 비용은 이고, 번 도시에서 번 도시로 가는 노선을 정비하는 비용은 이다.
장관 K는 몇몇 도시를 특별관광도시로 만든다. 도시 ()를 특별관광도시로 만들면, 각 도로 ()에 대해 다음 일이 일어난다. 번과 번 도시 중 번 도시에 가까운 도시를 번, 먼 도시를 번이라 하자. 여기서 가깝다는 것은 번 도시에서 그 도시까지 거쳐야 하는 도로 수가 적다는 뜻이다. 번 도시에서 번 도시로 가는 노선이 아직 정비되지 않았다면, 그 노선을 정비한다.
특별관광도시를 만들면서 드는 정비 비용은 세금으로 충당한다. 특별관광도시를 만든 뒤에 하는 정비 비용은 K의 개인 자금에서 나간다.
K는 개의 계획을 세웠다. 번째 () 계획에서 K는 특별관광도시가 하나도 없고 모든 노선이 정비되지 않은 상태에서 시작해, 정확히 개의 도시를 특별관광도시로 만든다. 어떤 도시를 고를지는 정해져 있지 않다. K는 개인 자금에서 나가는 정비 비용을 최소로 하고 싶어 한다. 도시 수, 도로 정보, 계획 정보가 주어졌을 때, 각 계획마다 개인 자금에서 나가는 정비 비용의 최솟값을 구하는 프로그램을 작성하여라.
입력
첫째 줄에 이 주어진다. 다음 개의 줄에는 각각 , , , 가 주어진다. 그다음 줄에는 가 주어진다. 다음 개의 줄에는 각각 가 주어진다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 계획에서 개인 자금으로 치르는 정비 비용의 최솟값을 출력한다.
제한
. (). (). (). 어떤 두 도시든 도로를 몇 개 거쳐 이동할 수 있다. (). (). (). . ().