만드는 중입니다

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

무료 항공권 한 장

면접 대비

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

요약
무방향 가중 도로 그래프와 최대 1000개의 단방향 무료 항공편이 주어질 때, 항공편을 최대 한 번 이용해 s에서 t로 가는 최소 비용을 구한다.
난이도

보통10점 중 7점

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

문제

피터는 ICPC 월드 파이널에 다녀왔다. 돌아오는 비행기가 초과 예약되는 바람에 피터는 자리를 잃었고, 항공사는 보상으로 원하는 두 도시를 잇는 무료 항공권 한 장을 주었다.

피터는 벌써 내년 여행을 계획하고 있다. 이동은 자동차로 하지만, 주어진 항공편 가운데 하나를 골라 여정의 한 구간에 무료 항공권을 쓸 수 있다. 항공권을 쓴 구간은 비용이 들지 않는다.

도시를 잇는 도로망과 각 도로의 기름값, 그리고 이용할 수 있는 항공편 목록이 주어진다. 피터가 출발 도시에서 내년 목적지까지 가는 데 드는 최소 비용을 구하여라.

입력

입력은 테스트 케이스 하나로 이루어진다. 첫째 줄에 다섯 정수 nn, mm, ff, ss, tt가 공백으로 구분되어 주어진다. nn은 도시의 수 (0<n≤50 0000 < n \le 50\,000), mm은 도로의 수 (0≤m≤150 0000 \le m \le 150\,000), ff는 항공편의 수 (0≤f≤1 0000 \le f \le 1\,000), ss는 피터가 출발하는 도시의 번호 (0≤s<n0 \le s < n), tt는 피터가 도착하려는 도시의 번호 (0≤t<n0 \le t < n)이다. 도시 번호는 00부터 n−1n - 1까지이다.

다음 mm개 줄에는 도로 하나의 정보가 세 정수 ii, jj, cc (0≤i,j<n0 \le i, j < n, i≠ji \ne j, 0<c≤50 0000 < c \le 50\,000)로 주어진다. 도시 ii와 도시 jj를 잇는 도로가 있고 이 도로를 지나는 데 cc센트가 든다는 뜻이다. 도로는 양방향 모두 같은 비용으로 이용한다. 도로 정보는 모두 서로 다르다.

이어지는 ff개 줄에는 항공편 하나의 정보가 두 정수 uu, vv (0≤u,v<n0 \le u, v < n, u≠vu \ne v)로 주어진다. 도시 uu에서 도시 vv로 가는 항공편이 있다는 뜻이다. vv에서 uu로 가는 항공편은 따로 한 줄로 주어지지 않는 한 없다. 항공편 정보는 모두 서로 다르다.

출력

피터가 항공편을 많아야 한 번 이용해서 출발 도시에서 목적지까지 가는 데 드는 최소 비용을 센트 단위로 출력한다. 목적지까지 가는 경로는 항상 존재한다.

예제2

  1. 예제 1

    입력
    8 11 1 0 5
    0 1 10
    0 2 10
    1 2 10
    2 6 40
    6 7 10
    5 6 10
    3 5 15
    3 6 40
    3 4 20
    1 4 20
    1 3 20
    4 7
    
    예상 출력
    45
    
  2. 예제 2

    입력
    8 11 1 0 5
    0 1 10
    0 2 10
    1 2 10
    2 6 40
    6 7 10
    5 6 10
    3 5 15
    3 6 40
    3 4 20
    1 4 20
    1 3 30
    4 7
    
    예상 출력
    50