문제 151
지정한 정점을 연결하기
정점이 $N$개이고 간선이 $M$개인 무방향 그래프가 주어진다. 정점의 번호는 $0$부터 $N-1$까지이며, 간선의 가중치는 음이 아닌 정수이다. 자기 루프와 중복 간선이 있을 수 있고, 그래프가 연결되어 있지 않을 수도 있다.
$K$개의 정점 목록이 주어진다. 각 목록에 대해 목록의 모든 정점을 연결할 수 있도록 간선을 선택할 때, 선택한 간선의 가중치 합의 최솟값을 구해 보자. 목록에 없는 정점도 사용할 수 있다. 목록의 정점 수가 $0$ 또는 $1$이면 답은 $0$이다.
입력
첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $Q$가 주어진다. $(1 \le Q \le 100)$
각 테스트 케이스의 첫 번째 줄에 세 정수 $N$, $M$, $K$가 공백으로 구분되어 주어진다. $(1 \le N \le 60; 0 \le M \le 200\,000; 1 \le K \le 5)$
두 번째 줄부터 $M$개의 줄에 걸쳐 간선의 양 끝 정점 번호 $u$, $v$와 가중치 $w$가 공백으로 구분되어 주어진다. $(0 \le u, v < N; 0 \le w \le 10\,000)$
그다음 줄부터 $K$개의 줄에 걸쳐 선택한 정점의 수를 의미하는 정수 $t$와 정점 번호 $a_1, a_2, \cdots, a_t$가 공백으로 구분되어 주어진다. $(0 \le t \le \min(10, N); 0 \le a_i < N; a_i \ne a_j \ (1 \le i < j \le t))$
전체 테스트 케이스에서 $N$의 합은 $300$ 이하이고 $M$의 합은 $300\,000$ 이하이다.
출력
각 테스트 케이스마다 정점 목록이 주어진 순서대로, 선택한 간선의 가중치 합의 최솟값을 한 줄에 하나씩 출력한다. 목록의 모든 정점을 연결할 수 없다면 $-1$을 출력한다.
예제 입력 1
3 5 6 3 0 1 3 0 2 4 0 4 1 1 2 3 1 3 5 2 4 0 0 1 0 3 4 2 0 7 7 3 0 3 4 0 4 5 0 5 5 1 3 5 1 6 0 3 5 3 4 6 1 0 1 0 3 5 4 6 6 3 3 1 2 1 2 4 2 3 4 5 0 1 0 3 1 2 0
예제 출력 1
0 0 1 0 0 9 0 0 -1