같은 노선에 탈 때마다 대기 시간을 더하고 터널로 환승하며 두 지하철역 사이 가장 빠른 경로를 구합니다.
보통5최단 경로그래프아직 제출이 없습니다시간 제한5초메모리 제한512 MB톰은 도시의 지하철을 타고 역에서 역으로 이동한다.
이 도시의 지하철은 다음과 같이 운행한다.
한 역에서 출발해 다른 역까지 갈 때 걸리는 가장 짧은 시간을 구하라.
첫째 줄에 테스트 케이스의 수 T가 주어진다. 이어서 테스트 케이스가 주어진다.
각 테스트 케이스의 첫째 줄에는 노선의 수 N이 주어진다. 이어서 노선 N개의 정보가 주어진다. i번 노선의 정보는 역의 수 SNi와 기다리는 시간 Wi가 적힌 줄로 시작한다. 다음 줄에는 이웃한 두 역 사이의 이동 시간 Timei,1,Timei,2,…,Timei,SNi−1이 정수 SNi−1개로 주어진다.
노선 정보 다음 줄에는 환승 통로의 수 M이 주어지고, 이어서 M개의 줄이 주어진다. 각 줄에는 정수 다섯 개 m1i, s1i, m2i, s2i, ti가 주어진다. Sm1i,s1i 역과 Sm2i,s2i 역을 잇는 통로가 있고, 그 통로를 걸어서 지나가는 데 ti분이 걸린다는 뜻이다.
다음 줄에는 질의의 수 Q가 주어지고, 이어서 Q개의 줄이 주어진다. 각 줄에는 정수 네 개 x1, y1, x2, y2가 주어지며, Sx1,y1 역에서 Sx2,y2 역까지 이동한다는 뜻이다.
제한:
각 테스트 케이스마다 Case #x:를 한 줄에 출력한다. x는 1부터 시작하는 테스트 케이스 번호다. 이어서 Q개의 줄을 출력한다. k번째 줄에는 k번째 질의의 최소 이동 시간을 출력하고, 도착할 수 없으면 -1을 출력한다.
예제 입력의 첫 번째 테스트 케이스에 있는 질의는 1번 노선 1번 역에서 2번 노선 4번 역까지 가는 경우다. 가장 빠른 경로 하나는 다음과 같다.
걸린 시간은 모두 3 + 3 + 1 + 2 + 2 = 11분이다.