정기권

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

어려움8그래프최단 경로동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

JOI 군이 사는 도시에는 역이 NN개 있다. 역에는 1부터 NN까지 번호가 붙어 있다. 철도 노선은 MM개이고, 1부터 MM까지 번호가 붙어 있다. 노선 ii (1iM1 \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번째 줄 (1iM1 \le i \le M)에 정수 AiA_i, BiB_i, CiC_i가 공백으로 구분되어 주어진다. 노선 ii가 역 AiA_i와 역 BiB_i를 양방향으로 잇고, 요금이 CiC_i엔이라는 뜻이다.

출력

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

제한

  • 2N1000002 \le N \le 100\,000
  • 1M2000001 \le M \le 200\,000
  • 1SN1 \le S \le N
  • 1TN1 \le T \le N
  • 1UN1 \le U \le N
  • 1VN1 \le V \le N
  • STS \ne T
  • UVU \ne V
  • SUS \ne U 또는 TVT \ne V
  • 철도를 타면 어느 역에서든 다른 어느 역으로도 갈 수 있다.
  • 1Ai<BiN1 \le A_i < B_i \le N (1iM1 \le i \le M)
  • 1i<jM1 \le i < j \le M인 모든 ii, jj에 대해 AiAjA_i \ne A_j 또는 BiBjB_i \ne B_j
  • 1Ci10000000001 \le C_i \le 1\,000\,000\,000 (1iM1 \le i \le M)