만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

약속 장소 정하기 (Small)

면접 대비

시간 제한5초메모리 제한512 MB

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

보통10점 중 4점

유형
최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

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

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

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

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

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

도로 jj (1≤j≤M1 \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_i와 ViV_i가 주어진다. 이어지는 MM개의 줄에 DjD_j, LjL_j, 그리고 Cj,1C_{j,1}부터 Cj,LjC_{j,L_j}까지가 주어진다.

제한

  • 1≤T≤301 \le T \le 30
  • 1≤N≤1101 \le N \le 110
  • 2≤P≤102 \le P \le 10
  • 1≤M≤101 \le M \le 10
  • 1≤Xi≤N1 \le X_i \le N
  • 1≤Vi≤2001 \le V_i \le 200
  • 1≤Dj≤2001 \le D_j \le 200
  • 2≤Lj≤252 \le L_j \le 25이고 Lj≤NL_j \le N
  • 각 테스트 케이스의 답은 21474836472147483647 이하이다.

출력

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

예제4

  1. 예제 1

    입력
    3
    2 2 1
    1 1
    2 2
    1 2 1 2
    5 2 2
    1 1
    5 100
    1 3 1 2 3
    2 3 4 2 5
    5 2 2
    1 1
    5 5
    1 2 1 2
    1 3 3 4 5
    
    예상 출력
    Case #1: 1
    Case #2: 3
    Case #3: -1
    
  2. 예제 2

    입력
    1
    3 3 1
    2 200
    2 1
    2 7
    200 2 1 3
    
    예상 출력
    Case #1: 0
    
  3. 예제 3

    입력
    1
    2 2 1
    1 200
    2 200
    200 2 1 2
    
    예상 출력
    Case #1: 40000
    
  4. 예제 4

    입력
    2
    4 2 2
    1 1
    4 1
    10 2 1 4
    1 3 1 2 4
    4 2 2
    1 1
    4 1
    1 2 1 4
    10 3 1 2 4
    
    예상 출력
    Case #1: 1
    Case #2: 1