연결하기
시간 제한5초메모리 제한1024 MB
특정 과정으로 만들어진 가중치 연결그래프와 K개의 정점이 주어질 때, 주어진 K개의 정점을 모두 연결하는 부분그래프의 최소 간선 가중치 합을 구한다.
문제
다음과 같은 과정을 통해 만들어진 무방향 가중치 연결그래프 가 주어진다.
- 정점의 집합 와 간선의 집합 에 대해 , 으로 둔다. 입력 제한을 만족하는 양의 정수 과 을 선택한다.
- 정점 , 를 추가하고, 간선 를 추가한다. (, )
- 현재 에 없는 가장 작은 양의 정수에 해당하는 번호를 가지는 정점 를 추가한다.
- 간선 를 뽑은 후, 간선의 양 끝점을 각각 와 연결한다. (, 를 에 추가한다.)
- 정점의 개수 가 미만이라면 3번 단계로 돌아가서 이후 과정을 다시 반복한다. 이상이라면 6번 단계로 넘어간다.
- 간선의 개수가 보다 많다면 가 연결그래프가 되게 하는 를 골라서 에서 제거한다. 즉, 를 제거했을 때도 가 연결그래프인 간선 를 선택하여 제거한다. 간선의 개수가 개가 될 때까지 이 과정을 반복한다.
- 정점 번호를 셔플하고 각 간선에 가중치를 부여한다. 가중치는 이상 이하의 양의 정수이다.
예를 들어, 다음은 올바른 입력에 해당하는 그래프이다.

그러나, 다음은 올바르지 않은 입력에 해당하는 그래프이다.

의 서로 다른 정점 개가 주어질 때, 간선의 부분집합 를 적절히 골라 에서 주어진 개의 정점이 같은 연결성분에 있게 해야 한다. 이러한 중 에 속하는 간선의 가중치 합의 최솟값을 구하여라. 다시 말해, 주어진 개의 정점을 모두 연결하는 부분그래프의 최소 가중치를 구하여라.
입력
첫 번째 줄에 과 이 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 번째 간선을 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. 이는 번째 간선이 와 를 연결하는 가중치 의 간선이라는 뜻이다.
번째 줄에는 가 주어진다.
번째 줄에는 개의 서로 다른 정점 가 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 답에 해당하는 정수를 출력한다.
제한
- 주어지는 모든 수는 정수이다.
- ()
- ()
- ()
- 는 모두 서로 다르다.
힌트
예제 4의 답은 다음과 같다.
