약속 장소 정하기 (Large)

속도가 다른 친구들이 한 도시에 모이므로 각 출발점에서 다익스트라를 실행해 가장 늦은 도착이 가장 이른 도시를 고합니다.

보통5최단 경로그래프면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

서로 다른 도시에 사는 친구들이 한자리에 모이려고 한다. 길이 복잡하고 사는 곳이 서로 멀어서 시간을 얼마나 잡아야 할지 가늠하기 어렵다. 친구 전원이 한 도시에 모이는 데 걸리는 최소 시간을 구하시오.

지도에는 도시와 도로 정보가 있다. 여기서 도로는 두 도시를 잇는 하나의 길이 아니라, 여러 도시를 순서대로 지나는 연속된 길의 모임이다.

테스트 케이스마다 다음이 주어진다.

  • NN: 도시의 수
  • PP: 친구의 수
  • MM: 도로의 수

도시에는 11번부터 NN번까지 번호가 붙어 있다.

11번부터 PP번까지 번호가 붙은 친구 ii마다 다음이 주어진다.

  • XiX_i: 친구가 출발하는 도시의 번호
  • ViV_i: 친구가 거리 11만큼 움직이는 데 걸리는 시간

도로 jj마다 다음이 주어진다.

  • DjD_j: 그 도로에서 이웃한 두 도시 사이의 거리. 한 도로 위에서는 이웃한 도시 사이의 거리가 모두 DjD_j로 같다.
  • LjL_j: 그 도로가 지나는 도시의 수
  • Cj,1,Cj,2,,Cj,LjC_{j,1}, C_{j,2}, \dots, C_{j,L_j}: 도로가 지나는 도시의 번호를 순서대로 나열한 것

친구들은 모두 같은 시각에 출발한다. 전원이 한 도시에 모이는 데 필요한 최소 시간을 구하고, 모두가 모일 수 있는 도시가 하나도 없으면 대신 -1을 출력하시오.

모임은 도시에서만 이루어지며, 먼저 도착한 친구는 나머지 친구를 기다릴 수 있다.

두 도시를 곧바로 잇는 구간은 모든 도로를 통틀어 많아야 한 번 나타난다. 어떤 도시에 도착하면 그 도시를 지나는 도로 사이를 추가 시간 없이 자유롭게 갈아탈 수 있다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음 형식이다.

N P M
X_1 V_1
X_2 V_2
...
X_P V_P
D_1 L_1 C_{1,1} C_{1,2} ... C_{1,L_1}
D_2 L_2 C_{2,1} C_{2,2} ... C_{2,L_2}
...
D_M L_M C_{M,1} C_{M,2} ... C_{M,L_M}

제한

  • 1T301 \le T \le 30
  • 1N100001 \le N \le 10000
  • 2P1002 \le P \le 100
  • 1M10001 \le M \le 1000
  • 1XiN1 \le X_i \le N
  • 1Vi2001 \le V_i \le 200
  • 1Dj2001 \le D_j \le 200
  • 2Ljmin(N,150)2 \le L_j \le \min(N, 150)
  • 각 테스트 케이스의 답은 21474836472147483647 이하이다.

출력

각 테스트 케이스마다 한 줄씩 Case #x: y 형식으로 출력한다. xx11부터 시작하는 테스트 케이스 번호이고, yy는 그 케이스의 답이다. 친구 전원이 한 도시에 모일 수 없으면 yy 자리에 -1을 출력한다.

힌트

그림은 예제 입력의 두 번째 테스트 케이스를 나타낸다. 정사각형은 도시, 웃는 얼굴은 친구, 실선은 거리가 11인 1번 도로, 점선은 거리가 22인 2번 도로이다.