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

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

마법 다리

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

요약
모든 마법 다리에 같은 길이를 정해 두 출발점에서 목표 지점까지 최단 거리의 차이를 가장 작게 만듭니다.
난이도

어려움10점 중 8점

유형
최단 경로, 수학
정답자
아직 제출이 없습니다

문제

어떤 마술사가 사는 나라는 섬 NN개와 다리 MM개로 이루어져 있다. 다리 가운데 일부는 마술사가 만든 마법 다리다. 마술사는 마법을 부려 모든 마법 다리의 길이를 동시에 똑같은 값으로 바꿀 수 있고, 그 값은 음이 아닌 정수여야 한다.

이 나라에는 두 사람이 겨루는 유명한 경주 경기가 있다. 1번 선수는 섬 S1S_1에서, 2번 선수는 섬 S2S_2에서 출발한다. 섬 TT에 먼저 도착한 쪽이 이긴다.

마술사는 이 경기를 즐겨 본다. 그래서 경기가 가장 팽팽해지도록, S1S_1에서 TT까지의 최단 거리와 S2S_2에서 TT까지의 최단 거리의 차이가 가장 작아지게 마법 다리의 길이를 정한다. 섬 안에서의 이동은 계산하지 않는다.

이 차이를 얼마나 줄일 수 있는지 구하라.

마술사는 경기가 시작하기 전에 길이를 한 번만 정하고, 경기 도중에는 바꾸지 않는다. 모든 마법 다리의 길이는 서로 같다. 다리는 어느 방향으로든 건널 수 있다.

입력

입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트의 형식은 다음과 같다. 입력에 등장하는 수는 모두 정수다.

N M S1 S2 T
a1 b1 w1
a2 b2 w2
...
aM bM wM

(ai,bi)(a_i, b_i)는 다리 ii가 섬 aia_i와 섬 bib_i를 잇는다는 뜻이다.

wiw_i는 음이 아닌 정수이거나 문자 x다. wiw_i가 정수면 다리 ii는 보통 다리이고 길이가 wiw_i다. wiw_i가 x면 다리 ii는 마법 다리다.

  • 1≤N≤10001 \le N \le 1000
  • 1≤M≤20001 \le M \le 2000
  • 1≤S1,S2,T≤N1 \le S_1, S_2, T \le N
  • S1S_1, S2S_2, TT는 서로 다르다.
  • 1≤ai,bi≤N1 \le a_i, b_i \le N
  • ai≠bia_i \neq b_i
  • 보통 다리 ii는 0≤wi≤10000000000 \le w_i \le 1000000000
  • 마법 다리의 개수는 100 이하다.
  • TT는 S1S_1에서도 S2S_2에서도 갈 수 있다.

마지막 데이터 세트 다음 줄에는 공백 하나로 구분한 0이 다섯 개 주어진다. 이 줄은 입력의 끝을 뜻하며, 처리하지 않는다.

출력

데이터 세트마다 두 최단 거리 차이의 최솟값을 한 줄에 출력한다.

예제5

  1. 예제 1

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

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

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

    입력
    6 7 2 3 1
    2 1 20
    2 4 x
    4 1 3
    3 1 8
    3 5 x
    5 6 x
    6 1 x
    0 0 0 0 0
    
    예상 출력
    0
  5. 예제 5

    입력
    4 6 4 2 1
    1 2 x
    2 3 x
    3 4 6
    1 4 1
    3 2 x
    2 4 0
    6 9 1 5 6
    1 2 6
    2 3 2
    3 4 8
    2 5 x
    2 6 x
    4 6 0
    5 2 5
    1 4 3
    3 2 4
    6 7 2 6 5
    1 2 1
    2 3 1
    1 4 6
    1 5 0
    1 6 5
    5 3 x
    3 4 7
    7 9 7 5 4
    1 2 x
    1 3 0
    3 4 7
    2 5 7
    1 6 6
    2 7 0
    4 3 x
    3 7 2
    3 4 x
    3 5 2 3 1
    1 2 3
    1 3 x
    2 3 x
    2 1 7
    1 3 4
    0 0 0 0 0
    
    예상 출력
    0
    1
    4
    7
    0