아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

런던 지하철

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

요약
정거장별 소요 시간이 주어진 지하철 노선들과 환승 시간이 있을 때 두 역 사이의 최단 이동 시간을 구한다.
난이도

보통10점 중 6점

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

문제

런던 지하철에는 1번부터 NN번까지 번호가 붙은 역 NN개와 1번부터 MM번까지 번호가 붙은 노선 MM개가 있다. 각 노선은 정해진 순서대로 역에 정차하고, 하루 종일 양방향을 왕복한다. 한 노선에서 이웃한 두 역 사이의 거리는 양방향이 같고, 모든 역에서 양방향 열차가 1분마다 출발하므로 열차를 기다리는 시간은 들지 않는다.

노선은 정차하는 역을 순서대로 나열해서 주어지고, 각 정차역에는 노선의 출발점에서 그 역까지 걸리는 시간이 함께 붙는다. 한 노선을 타고 어떤 정차역에서 다른 정차역까지 가는 데 걸리는 시간은 두 값의 차이다.

두 노선 L1L_1과 L2L_2가 모두 SiS_i역에 정차하면 그 역에서 노선을 갈아탈 수 있고, 한 번 갈아타는 데 SS분이 걸린다. 출발할 때 첫 노선에 타는 시간과 도착할 때 마지막 노선에서 내리는 시간은 들지 않는다.

앨리스와 밥은 런던을 여행하는 중이다. 지하철을 자주 타지만 늘 가장 빠른 길로 가고 있다는 느낌이 들지 않는다. AA역에서 BB역까지 가는 데 걸리는 최소 시간을 구하라.

입력

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

각 테스트 케이스의 첫째 줄에는 정수 다섯 개 SS, NN, MM, AA, BB가 공백으로 구분되어 주어진다. 차례로 노선을 한 번 갈아타는 데 걸리는 시간, 역의 개수, 노선의 개수, 출발역, 도착역이다.

이어지는 MM개의 줄에는 각 노선의 정보가 주어진다. 먼저 그 노선의 정차역 개수 XX가 주어지고, 이어서 정차 순서대로 정차역 정보 XX개가 공백으로 구분되어 주어진다. 정차역 정보는 정수 두 개로, 첫 번째 수 SniSn_i는 역 번호이고 두 번째 수 StiSt_i는 노선의 출발점에서 그 역까지 걸리는 시간이다.

  • 1≤T≤201 \le T \le 20
  • 1≤S≤1001 \le S \le 100
  • 2≤N≤1002 \le N \le 100
  • 1≤M≤101 \le M \le 10
  • 1≤A,B≤N1 \le A, B \le N, A≠BA \ne B
  • 모든 노선에 대해 1≤X≤N1 \le X \le N
  • 모든 노선에 대해 St0=0St_0 = 0
  • 모든 노선에 대해 Sti>Sti−1St_i > St_{i-1}
  • 모든 노선에 대해 0≤Sti≤10000 \le St_i \le 1000
  • 1번부터 NN번까지 모든 역은 적어도 한 노선에 속한다.
  • 모든 역은 다른 모든 역에서 갈 수 있다.

출력

각 테스트 케이스마다 AA역에서 BB역까지 가는 데 걸리는 최소 시간을 분 단위로 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 5 1 1 5
    5 2 0 1 2 3 5 5 10 4 15
    3 4 2 1 4
    3 1 0 2 2 3 5
    3 2 0 3 10 4 11
    1 4 2 1 4
    3 1 0 2 2 4 15
    3 2 0 3 1 4 2
    
    예상 출력
    8
    9
    5
    
  2. 예제 2

    입력
    2
    5 2 1 1 2
    2 1 0 2 7
    10 3 2 1 3
    2 1 0 2 4
    2 2 0 3 6
    
    예상 출력
    7
    20