|시간 제한||메모리 제한||제출||정답||맞힌 사람||정답 비율|
|8 초 (추가 시간 없음)||256 MB||64||8||8||12.698%|
A magician lives in a country which consists of \(N\) islands and \(M\) bridges. Some of the bridges are magical bridges, which are created by the magician. Her magic can change all the lengths of the magical bridges to the same non-negative integer simultaneously.
This country has a famous 2-player race game. Player 1 starts from island \(S_1\) and Player 2 starts from island \(S_2\). A player who reached the island \(T\) first is a winner.
Since the magician loves to watch this game, she decided to make the game most exiting by changing the length of the magical bridges so that the difference between the shortest-path distance from \(S_1\) to \(T\) and the shortest-path distance from \(S_2\) to \(T\) is as small as possible. We ignore the movement inside the islands.
Your job is to calculate how small the gap can be.
Note that she assigns a length of the magical bridges before the race starts once, and does not change the length during the race.
The input consists of several datasets. The end of the input is denoted by five zeros separated by a single-space. Each dataset obeys the following format. Every number in the inputs is integer.
N M S1 S2 T a1 b1 w1 a2 b2 w2 ... aM bM wM
(\(a_i, b_i\)) indicates the bridge \(i\) connects the two islands \(a_i\) and \(b_i\).
\(w_i\) is either a non-negative integer or a letter
x (quotes for clarity). If \(w_i\) is an integer, it indicates the bridge \(i\) is normal and its length is \(w_i\). Otherwise, it indicates the bridge \(i\) is magical.
You can assume the following:
For each dataset, print the answer in a line.
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