만드는 중입니다

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

템포럴 그래프

면접 대비

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

요약
시간 레이블이 증가하는 순서로 간선을 골라 s에서 e까지 가는 최단 경로의 길이를 구합니다.
난이도

보통10점 중 5점

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

문제

템포럴 그래프는 시간에 따라 변하는 관계를 표현하는 자료 구조이다. 템포럴 그래프의 정점 집합 VV는 시간이 흘러도 변하지 않는다. 정점의 개수를 n≥1n \ge 1이라 하면 V={0,1,…,n−1}V = \{0, 1, \dots, n-1\}이다. 시간 표기 TT는 양의 정수 1,2,…,t1, 2, \dots, t의 값을 가지며, 시간 표기가 커질수록 시간이 흐른다. 각 시간 표기 TT에서 양의 정수 가중치를 가지는 간선들의 집합 ETE_T가 정의되고, ETE_T에 포함되는 간선의 수는 모든 TT에서 같다. 아래 그림은 정점 집합 V={0,1,2,3,4}V = \{0, 1, 2, 3, 4\}와 시간 표기 T=1,2,3,4T = 1, 2, 3, 4에서 정의된 템포럴 그래프의 예시이다.

템포럴 그래프에서 한 정점에서 다른 정점으로 가는 경로는 시간 표기가 증가하는 순서로 나타나는 간선들의 집합이다. 경로를 만들 때 각 시간 표기에서 간선을 최대 한 개 선택할 수 있으며, 경로를 이루는 간선들의 시간 표기가 연속일 필요는 없다. 위 그림의 그래프에서 간선 (0,1)(0, 1), (1,2)(1, 2), (2,4)(2, 4)를 각각 시간 표기 T=1,2,4T = 1, 2, 4에서 선택하면 정점 00에서 정점 44로 가는 경로가 된다. 반면 간선 (0,2)(0, 2), (2,3)(2, 3), (3,4)(3, 4)를 각각 시간 표기 T=1,3,2T = 1, 3, 2에서 선택하면 선택한 시간 표기가 증가하지 않으므로 정점 00에서 정점 44로 가는 경로가 될 수 없다. 경로의 길이는 경로에 포함된 간선 가중치의 합으로 정의한다. 간선 (0,2)(0, 2), (2,4)(2, 4)를 각각 시간 표기 T=1,4T = 1, 4에서 선택하면 정점 00에서 정점 44로 가는 최단 경로이며, 길이는 1+2=31 + 2 = 3이다.

입력으로 템포럴 그래프와 경로의 시작 정점 ss, 끝 정점 ee가 주어질 때, 정점 ss에서 정점 ee로 가는 최단 경로의 길이를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 정점 집합의 크기 nn (2≤n≤10 0002 \le n \le 10\,000), 시간 표기의 범위 tt (1≤t≤1 0001 \le t \le 1\,000), 매 시간 표기마다 정의되는 간선의 개수 mm (1≤m≤1 0001 \le m \le 1\,000)이 차례로 주어진다. 다음 줄에는 경로의 시작 정점 ss와 끝 정점 ee (0≤s≠e≤n−10 \le s \ne e \le n - 1)가 차례로 주어진다. 이어지는 mm개의 줄에는 시간 표기 T=1T = 1에서 정의되는 간선의 정보가 주어진다. 각 줄에는 간선이 연결하는 두 정점의 번호와 간선의 가중치 ww (1≤w≤10 0001 \le w \le 10\,000)가 차례로 주어진다. 두 정점을 연결하는 간선이 두 개 이상 주어지는 경우는 없다. 이어지는 m×(t−1)m \times (t - 1)개의 줄에는 시간 표기 T=2,…,tT = 2, \dots, t에서 정의되는 간선의 정보가 같은 방식으로 주어진다.

출력

정점 ss에서 정점 ee로 가는 최단 경로의 길이를 한 줄에 출력한다. 경로가 존재하지 않으면 −1-1을 출력한다.

예제2

  1. 예제 1

    입력
    5 4 3
    0 4
    0 1 1
    0 2 1
    2 4 3
    0 3 3
    1 2 3
    3 4 2
    0 4 5
    1 4 4
    2 3 4
    0 1 2
    1 2 3
    2 4 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5 4 2
    0 4
    0 1 1
    0 2 1
    1 2 3
    3 4 2
    1 2 3
    2 3 4
    0 1 2
    1 2 3
    
    예상 출력
    -1