테러리스트

트리를 약간 벗어난 그래프에서 두 정점 사이의 최단 거리를 질의마다 구합니다.

보통7최단 경로트리아직 제출이 없습니다시간 제한5초메모리 제한256 MB

문제

동네는 교차로와 도로로 나타낼 수 있다. 테러리스트는 범행을 저지르기 전에 한 교차로에 모였다가 다른 교차로로 이동한다. 경찰이 확보한 정보에는 집결 교차로와 목적지 교차로가 적혀 있지만, 언제 움직이는지는 적혀 있지 않다.

인력이 부족한 경찰은 모든 범행을 현장에서 막지 못한다. 대신 집결 교차로마다 감시 카메라를 설치해 두고, 집결이 포착되면 그 계획의 목적지로 출동한다. 테러리스트는 교차로 사이를 언제나 최단 경로로 이동한다.

계획마다 집결 교차로와 목적지 교차로 사이의 최단 거리를 구하라.

입력

첫째 줄에 테스트 세트의 개수 TT가 주어진다. (1T51 \le T \le 5)

각 테스트 세트의 첫째 줄에는 교차로의 수 NN, 도로의 수 MM, 테러 계획의 수 QQ가 순서대로 주어진다. (1N1000001 \le N \le 100000, N1MN+50N - 1 \le M \le N + 50, 1Q500001 \le Q \le 50000)

다음 MM개 줄에는 도로 하나의 정보가 세 정수 UU, VV, DD로 주어진다. UUVV는 그 도로가 잇는 두 교차로이고, DD는 도로의 길이다. (1U,VN1 \le U, V \le N, 1D100001 \le D \le 10000) 두 교차로를 잇는 도로는 여러 개일 수 있고, UUVV가 같은 도로도 있을 수 있다. 모든 도로는 양방향이며, 어느 교차로에서든 나머지 모든 교차로로 갈 수 있다.

다음 QQ개 줄에는 테러 계획 하나의 정보가 두 정수 SS, EE로 주어진다. SS는 집결 교차로, EE는 목적지 교차로다. (1S,EN1 \le S, E \le N)

출력

각 테스트 세트마다 먼저 Case x:를 출력한다. xx는 1부터 시작하는 테스트 세트 번호다. 그 다음 QQ개 줄에 각 테러 계획의 집결 교차로와 목적지 교차로 사이의 최단 거리를 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.