서로 다른 속도로 이동하는 친구들이 하나의 도시에 모일 때 가장 늦게 도착하는 시각이 최소가 되는 도시를 구합니다.
보통4최단 경로그래프면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB서로 다른 도시에 사는 친구들이 한자리에 모이려고 한다. 길이 복잡한 데다 서로 멀리 떨어져 있어서 시간을 얼마나 잡아야 할지 가늠하기 어렵다. 친구들이 한 도시에 모이는 데 필요한 최소 시간을 구하라.
지도에는 도시와 도로 정보가 있다. 여기서 도로는 두 도시만 잇는 길이 아니라, 여러 도시를 순서대로 지나가는 연속된 길이다.
각 테스트 케이스에는 도시의 수 N, 친구의 수 P, 도로의 수 M이 주어진다. 도시에는 1번부터 N번까지 번호가 붙어 있다.
친구 i (1≤i≤P)마다 다음 값이 주어진다.
도로 j (1≤j≤M)마다 다음 값이 주어진다.
친구들은 동시에 출발한다. 모두가 한 도시에 모이는 데 필요한 최소 시간을 구하라. 모두 모일 수 있는 도시가 하나도 없다면 최소 시간 대신 -1을 출력한다.
모임은 도시에서만 이루어지고, 먼저 도착한 친구는 다른 친구를 기다릴 수 있다. 두 도시를 직접 잇는 길은 둘 이상 존재하지 않는다. 어떤 도시에 도착하면 그 도시를 지나는 도로 사이를 추가 시간 없이 자유롭게 옮겨 다닐 수 있다.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스는 다음 형식으로 이어진다.
첫 줄에 N, P, M이 공백으로 구분되어 주어진다. 이어지는 P개의 줄에 Xi와 Vi가 주어진다. 이어지는 M개의 줄에 Dj, Lj, 그리고 Cj,1부터 Cj,Lj까지가 주어진다.
각 테스트 케이스마다 한 줄에 Case #x: y 형식으로 출력한다. x는 1번부터 시작하는 테스트 케이스의 번호이고, y는 그 케이스의 답이다. 친구들이 한 도시에 모일 수 없다면 y 자리에 -1을 출력한다.