약속 장소 정하기 (Small)

서로 다른 속도로 이동하는 친구들이 하나의 도시에 모일 때 가장 늦게 도착하는 시각이 최소가 되는 도시를 구합니다.

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

문제

서로 다른 도시에 사는 친구들이 한자리에 모이려고 한다. 길이 복잡한 데다 서로 멀리 떨어져 있어서 시간을 얼마나 잡아야 할지 가늠하기 어렵다. 친구들이 한 도시에 모이는 데 필요한 최소 시간을 구하라.

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

각 테스트 케이스에는 도시의 수 NN, 친구의 수 PP, 도로의 수 MM이 주어진다. 도시에는 11번부터 NN번까지 번호가 붙어 있다.

친구 ii (1iP1 \le i \le P)마다 다음 값이 주어진다.

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

도로 jj (1jM1 \le j \le M)마다 다음 값이 주어진다.

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

친구들은 동시에 출발한다. 모두가 한 도시에 모이는 데 필요한 최소 시간을 구하라. 모두 모일 수 있는 도시가 하나도 없다면 최소 시간 대신 -1을 출력한다.

모임은 도시에서만 이루어지고, 먼저 도착한 친구는 다른 친구를 기다릴 수 있다. 두 도시를 직접 잇는 길은 둘 이상 존재하지 않는다. 어떤 도시에 도착하면 그 도시를 지나는 도로 사이를 추가 시간 없이 자유롭게 옮겨 다닐 수 있다.

입력

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

첫 줄에 NN, PP, MM이 공백으로 구분되어 주어진다. 이어지는 PP개의 줄에 XiX_iViV_i가 주어진다. 이어지는 MM개의 줄에 DjD_j, LjL_j, 그리고 Cj,1C_{j,1}부터 Cj,LjC_{j,L_j}까지가 주어진다.

제한

  • 1T301 \le T \le 30
  • 1N1101 \le N \le 110
  • 2P102 \le P \le 10
  • 1M101 \le M \le 10
  • 1XiN1 \le X_i \le N
  • 1Vi2001 \le V_i \le 200
  • 1Dj2001 \le D_j \le 200
  • 2Lj252 \le L_j \le 25이고 LjNL_j \le N
  • 각 테스트 케이스의 답은 21474836472147483647 이하이다.

출력

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