정거장별 소요 시간이 주어진 지하철 노선들과 환승 시간이 있을 때 두 역 사이의 최단 이동 시간을 구한다.
보통6최단 경로그래프동적 계획법아직 제출이 없습니다시간 제한1초메모리 제한512 MB런던 지하철에는 1번부터 N번까지 번호가 붙은 역 N개와 1번부터 M번까지 번호가 붙은 노선 M개가 있다. 각 노선은 정해진 순서대로 역에 정차하고, 하루 종일 양방향을 왕복한다. 한 노선에서 이웃한 두 역 사이의 거리는 양방향이 같고, 모든 역에서 양방향 열차가 1분마다 출발하므로 열차를 기다리는 시간은 들지 않는다.
노선은 정차하는 역을 순서대로 나열해서 주어지고, 각 정차역에는 노선의 출발점에서 그 역까지 걸리는 시간이 함께 붙는다. 한 노선을 타고 어떤 정차역에서 다른 정차역까지 가는 데 걸리는 시간은 두 값의 차이다.
두 노선 L1과 L2가 모두 Si역에 정차하면 그 역에서 노선을 갈아탈 수 있고, 한 번 갈아타는 데 S분이 걸린다. 출발할 때 첫 노선에 타는 시간과 도착할 때 마지막 노선에서 내리는 시간은 들지 않는다.
앨리스와 밥은 런던을 여행하는 중이다. 지하철을 자주 타지만 늘 가장 빠른 길로 가고 있다는 느낌이 들지 않는다. A역에서 B역까지 가는 데 걸리는 최소 시간을 구하라.
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스의 첫째 줄에는 정수 다섯 개 S, N, M, A, B가 공백으로 구분되어 주어진다. 차례로 노선을 한 번 갈아타는 데 걸리는 시간, 역의 개수, 노선의 개수, 출발역, 도착역이다.
이어지는 M개의 줄에는 각 노선의 정보가 주어진다. 먼저 그 노선의 정차역 개수 X가 주어지고, 이어서 정차 순서대로 정차역 정보 X개가 공백으로 구분되어 주어진다. 정차역 정보는 정수 두 개로, 첫 번째 수 Sni는 역 번호이고 두 번째 수 Sti는 노선의 출발점에서 그 역까지 걸리는 시간이다.
각 테스트 케이스마다 A역에서 B역까지 가는 데 걸리는 최소 시간을 분 단위로 한 줄에 출력한다.