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

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

정기권

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

요약
S에서 T로 가는 최단 경로 하나를 무료로 지정한 뒤, 그 경로의 간선은 0원, 나머지는 요금을 내는 조건에서 U에서 V로 가는 최소 비용을 구한다.
난이도

어려움10점 중 8점

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

문제

JOI 군이 사는 도시에는 역이 NN개 있다. 역에는 1부터 NN까지 번호가 붙어 있다. 철도 노선은 MM개이고, 1부터 MM까지 번호가 붙어 있다. 노선 ii (1≤i≤M1 \le i \le M)는 역 AiA_i와 역 BiB_i를 양방향으로 잇고, 요금은 CiC_i엔이다.

JOI 군은 역 SS 근처에 살고, 역 TT 근처에 있는 IOI 고등학교에 다닌다. 그래서 두 역을 잇는 정기권을 사려고 한다. 정기권을 살 때는 역 SS와 역 TT 사이의 경로 중 비용이 최소인 경로를 하나 골라야 한다. 이 정기권이 있으면 고른 경로에 포함된 노선은 어느 방향으로든 추가 요금 없이 탈 수 있다.

JOI 군은 역 UU와 역 VV 근처의 서점에도 자주 간다. 그래서 역 UU에서 역 VV까지 가는 비용이 최소가 되도록 정기권을 사고 싶다.

역 UU에서 역 VV로 갈 때는 먼저 역 UU에서 역 VV까지의 경로를 하나 고른다. 그 경로에 포함된 각 노선 ii의 요금은 다음과 같다.

  • 노선 ii가 정기권을 살 때 고른 경로에 포함되면 0엔
  • 노선 ii가 정기권을 살 때 고른 경로에 포함되지 않으면 CiC_i엔

이 요금의 합이 역 UU에서 역 VV까지의 비용이다.

정기권을 살 때 경로를 알맞게 고른다고 할 때, 역 UU에서 역 VV까지의 최소 비용을 구하는 프로그램을 작성하시오.

입력

표준 입력에서 다음 데이터를 읽는다.

  • 첫째 줄에 정수 NN, MM이 공백으로 구분되어 주어진다. JOI 군이 사는 도시에 역이 NN개, 철도 노선이 MM개 있다는 뜻이다.
  • 둘째 줄에 정수 SS, TT가 공백으로 구분되어 주어진다. JOI 군이 역 SS와 역 TT를 잇는 정기권을 사려 한다는 뜻이다.
  • 셋째 줄에 정수 UU, VV가 공백으로 구분되어 주어진다. JOI 군이 역 UU에서 역 VV까지의 비용을 최소로 만들고 싶다는 뜻이다.
  • 이어지는 MM개 줄 중 ii번째 줄 (1≤i≤M1 \le i \le M)에 정수 AiA_i, BiB_i, CiC_i가 공백으로 구분되어 주어진다. 노선 ii가 역 AiA_i와 역 BiB_i를 양방향으로 잇고, 요금이 CiC_i엔이라는 뜻이다.

출력

표준 출력에 한 줄을 출력한다. 정기권을 살 때 경로를 알맞게 골랐을 때 역 UU에서 역 VV까지 가는 최소 비용을 출력한다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 1≤M≤200 0001 \le M \le 200\,000
  • 1≤S≤N1 \le S \le N
  • 1≤T≤N1 \le T \le N
  • 1≤U≤N1 \le U \le N
  • 1≤V≤N1 \le V \le N
  • S≠TS \ne T
  • U≠VU \ne V
  • S≠US \ne U 또는 T≠VT \ne V
  • 철도를 타면 어느 역에서든 다른 어느 역으로도 갈 수 있다.
  • 1≤Ai<Bi≤N1 \le A_i < B_i \le N (1≤i≤M1 \le i \le M)
  • 1≤i<j≤M1 \le i < j \le M인 모든 ii, jj에 대해 Ai≠AjA_i \ne A_j 또는 Bi≠BjB_i \ne B_j
  • 1≤Ci≤1 000 000 0001 \le C_i \le 1\,000\,000\,000 (1≤i≤M1 \le i \le M)

예제5

  1. 예제 1

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

    입력
    6 5
    1 2
    3 6
    1 2 1000000000
    2 3 1000000000
    3 4 1000000000
    4 5 1000000000
    5 6 1000000000
    
    예상 출력
    3000000000
    
  3. 예제 3

    입력
    8 8
    5 7
    6 8
    1 2 2
    2 3 3
    3 4 4
    1 4 1
    1 5 5
    2 6 6
    3 7 7
    4 8 8
    
    예상 출력
    15
    
  4. 예제 4

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

    입력
    10 15
    6 8
    7 9
    2 7 12
    8 10 17
    1 3 1
    3 8 14
    5 7 15
    2 3 7
    1 10 14
    3 6 12
    1 5 10
    8 9 1
    2 9 7
    1 4 1
    1 8 1
    2 4 7
    5 6 16
    
    예상 출력
    19