页面无法加载?点击这里可能会修复。
Placeholder

#10461

코딩 대회 수십 년사 20s 2048MB

问题

스피니(Sphinny)가 대회를 일정에 맞춰 배치하는 기술을 마스터하여 최고의 프로그래밍 참가자가 된 지도 거의 15년이 지났다. 스피니는 코딩 대회와 함께 성장해 이제는 프로그래밍 대회 주최자가 되었고, 그녀가 운영하는 프로그래밍 클럽 리그(Programming Club League, PCL)는 그녀의 도시에서 가장 인기 있는 스포츠이다.

스피니의 도시에는 버스 정류장이 \mathbf{N}개 있고, 급행 버스 노선이 \mathbf{M}개 있다. 각 노선은 서로 다른 두 버스 정류장을 양방향으로 연결하며, 이를 그 노선의 양 끝점(endpoints)이라고 하자. PCL의 인기로 인해, 각 버스 노선의 운전사는 정확히 한 개의 클럽을 응원한다.

스피니는 j번째 대회의 자료를 버스 정류장 \mathbf{P_j}에서 픽업한 뒤, 버스 정류장 \mathbf{C_j}에서 대회를 열어야 한다. 스피니는 주어진 버스 노선들만 이용해 두 정류장 사이를 이동할 수 있다. 정확히 말해, \mathbf{P_j}에서 \mathbf{C_j}로 가는 경로란, 연속한 두 노선이 항상 공통 정류장(끝점)을 하나 이상 가지는 버스 노선들의 목록이다. 또한 경로의 첫 노선은 끝점으로 \mathbf{P_j}를 포함해야 하고, 경로의 마지막 노선은 끝점으로 \mathbf{C_j}를 포함해야 한다. 같은 버스 노선을 한 경로에서 여러 번 사용할 수도 있음에 유의하라. 스피니의 \mathbf{P_j}에서 \mathbf{C_j}로 가는 경로에 운전사가 클럽 c를 응원하는 버스 노선이 하나 이상 포함되어 있다면, 클럽 c는 그 대회에 참가한다. 그렇지 않다면 클럽 c는 그 대회에 참가하지 않는다. 운영상의 이유로, 스피니는 각 대회에 참가하는 클럽의 수가 홀수이기를 원한다.

스피니의 도시의 버스 노선 구조와 대회 정보가 주어질 때, 참가하는 클럽의 수가 홀수가 되도록 보장할 수 있는 경로를 스피니가 선택할 수 있는 대회의 개수를 구하라.


输入

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. \mathbf{T}개의 테스트 케이스가 이어진다.
각 테스트 케이스의 첫 줄에는 정수 세 개 \mathbf{N}, \mathbf{M}, \mathbf{Q}가 주어진다. 이는 각각 버스 정류장의 수, 버스 노선의 수, 대회의 수이다.

그 다음 \mathbf{M}줄이 이어지며, 각 줄은 서로 다른 하나의 버스 노선을 나타낸다. 이 중 i번째 줄에는 정수 세 개 \mathbf{U_i}, \mathbf{V_i}, \mathbf{K_i}가 주어진다. 이는 i번째 버스 노선이 버스 정류장 \mathbf{U_i}\mathbf{V_i}를 연결하고, 그 노선의 운전사가 클럽 \mathbf{K_i}를 응원함을 의미한다.

마지막으로 \mathbf{Q}줄이 이어지며, 각 줄은 하나의 대회를 나타낸다. 이 중 j번째 줄에는 정수 두 개 \mathbf{P_j}, \mathbf{C_j}가 주어진다. 이는 j번째 대회의 자료를 버스 정류장 \mathbf{P_j}에서 픽업해야 하고, 버스 정류장 \mathbf{C_j}에서 대회를 열어야 함을 뜻한다.


输出

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이고, y는 스피니가 참가 클럽 수를 홀수로 만들 수 있는 경로를 찾을 수 있는 대회의 개수이다.


示例 #1

2
5 5 3
1 2 1
2 3 2
2 4 1
2 5 1
4 5 1
1 3
3 4
5 1
3 1 2
1 3 1
1 2
1 3
Case #1: 1
Case #2: 1
이 추가 샘플 케이스는 위 그림에 표시되어 있다. 이 경우 두 대회 모두 홀수 개의 클럽으로 진행할 수 있다. 이를 만족하는 한 가지 경로가 그림에 나와 있다.

示例 #2

1
4 5 2
1 2 3
1 3 3
3 4 7
2 3 3
2 4 6
1 2
1 4
Case #1: 2

来源

GCJ 2023c D

需要登录才能编写代码。