만드는 중입니다

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

여행 (스몰)

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

요약
출발 시각에 따라 소요 시간이 달라지는 도로망에서 도시 1을 출발해 각 목적지까지 가장 빠른 이동 시간을 구합니다.
난이도

보통10점 중 7점

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

문제

첼시가 사는 주에는 도시가 NN개 있고 1번부터 번호가 붙어 있다. 첼시는 1번 도시에 산다. 도시를 직접 잇는 양방향 도로가 MM개 있으며, 같은 두 도시를 잇는 도로가 여러 개일 수도 있다. 시간대마다 교통 상황이 달라져서 같은 도로라도 출발하는 시각에 따라 지나는 데 걸리는 시간이 다르다. 이동 방향은 상관없다. 어느 쪽으로 가든 막히는 정도가 같기 때문이다.

도로를 지나는 이동은 언제나 정각에 시작해 정각에 끝난다. 한 도로를 다 지난 순간 곧바로 다음 도로로 출발할 수 있다.

첼시는 겨울 휴가를 어디로 갈지 고르고 있다. 목적지와 출발 시각을 여러 가지로 바꿔 가며 자기 도시에서 목적지까지 가는 데 최소 몇 시간이 걸리는지 알고 싶어 한다. 가는 길에 다른 도시를 거쳐도 된다. 첼시의 질문에 모두 답하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫째 줄에는 도시의 수 NN, 도로의 수 MM, 질문의 수 KK가 정수로 주어진다.

이어서 2M2M개의 줄, 곧 두 줄씩 묶인 MM개의 쌍이 주어진다. 각 쌍의 첫째 줄에는 서로 다른 두 정수 xx와 yy가 주어지고, xx번 도시와 yy번 도시를 잇는 양방향 도로 하나를 나타낸다. 둘째 줄에는 정수 24개 Cost[t]Cost[t] (0≤t≤230 \le t \le 23)가 주어진다. Cost[t]Cost[t]는 그 도로를 tt시 정각에 출발해 지날 때 걸리는 시간이며 단위는 시간이다. 0≤t≤220 \le t \le 22인 모든 tt에서 Cost[t]≤Cost[t+1]+1Cost[t] \le Cost[t+1] + 1이고, Cost[23]≤Cost[0]+1Cost[23] \le Cost[0] + 1임이 보장된다.

이어서 KK개의 줄이 주어진다. 각 줄에는 정수 DD와 SS가 주어지며, 첼시가 1번 도시를 SS시 정각에 떠나 DD번 도시까지 갈 때 최소 몇 시간이 걸리는지 묻는 질문이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤N≤202 \le N \le 20
  • 1≤M≤1001 \le M \le 100
  • 1≤K≤1001 \le K \le 100
  • 1≤x,y≤N1 \le x, y \le N이고 x≠yx \ne y
  • 1≤Cost[t]≤501 \le Cost[t] \le 50
  • 1≤D≤N1 \le D \le N
  • 0≤S≤230 \le S \le 23

출력

각 테스트 케이스마다 한 줄을 출력한다. 줄은 Case #x:로 시작하며 x는 1부터 시작하는 테스트 케이스 번호다. 그 뒤에 질문의 답 KK개를 순서대로 공백 한 칸으로 구분해 출력한다. 어떤 도로를 골라도 목적지에 도달할 수 없는 질문에는 -1을 출력한다.

예제1

  1. 예제 1

    입력
    3
    3 3 2
    1 2
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 3
    3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
    2 3
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    2 1
    3 3
    3 1 2
    1 2
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    2 2
    3 4
    3 3 3
    1 2
    7 23 23 25 26 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8
    1 3
    10 11 15 26 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11
    2 3
    7 29 28 27 26 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8
    2 14
    3 3
    3 21
    
    예상 출력
    Case #1: 1 2
    Case #2: 1 -1
    Case #3: 17 26 13