여행 (스몰)
시간 제한5초메모리 제한512 MB
출발 시각에 따라 소요 시간이 달라지는 도로망에서 도시 1을 출발해 각 목적지까지 가장 빠른 이동 시간을 구합니다.
문제
첼시가 사는 주에는 도시가 개 있고 1번부터 번호가 붙어 있다. 첼시는 1번 도시에 산다. 도시를 직접 잇는 양방향 도로가 개 있으며, 같은 두 도시를 잇는 도로가 여러 개일 수도 있다. 시간대마다 교통 상황이 달라져서 같은 도로라도 출발하는 시각에 따라 지나는 데 걸리는 시간이 다르다. 이동 방향은 상관없다. 어느 쪽으로 가든 막히는 정도가 같기 때문이다.
도로를 지나는 이동은 언제나 정각에 시작해 정각에 끝난다. 한 도로를 다 지난 순간 곧바로 다음 도로로 출발할 수 있다.
첼시는 겨울 휴가를 어디로 갈지 고르고 있다. 목적지와 출발 시각을 여러 가지로 바꿔 가며 자기 도시에서 목적지까지 가는 데 최소 몇 시간이 걸리는지 알고 싶어 한다. 가는 길에 다른 도시를 거쳐도 된다. 첼시의 질문에 모두 답하라.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫째 줄에는 도시의 수 , 도로의 수 , 질문의 수 가 정수로 주어진다.
이어서 개의 줄, 곧 두 줄씩 묶인 개의 쌍이 주어진다. 각 쌍의 첫째 줄에는 서로 다른 두 정수 와 가 주어지고, 번 도시와 번 도시를 잇는 양방향 도로 하나를 나타낸다. 둘째 줄에는 정수 24개 ()가 주어진다. 는 그 도로를 시 정각에 출발해 지날 때 걸리는 시간이며 단위는 시간이다. 인 모든 에서 이고, 임이 보장된다.
이어서 개의 줄이 주어진다. 각 줄에는 정수 와 가 주어지며, 첼시가 1번 도시를 시 정각에 떠나 번 도시까지 갈 때 최소 몇 시간이 걸리는지 묻는 질문이다.
제한
- 이고
출력
각 테스트 케이스마다 한 줄을 출력한다. 줄은 Case #x:로 시작하며 x는 1부터 시작하는 테스트 케이스 번호다. 그 뒤에 질문의 답 개를 순서대로 공백 한 칸으로 구분해 출력한다. 어떤 도로를 골라도 목적지에 도달할 수 없는 질문에는 -1을 출력한다.