Roger と Troy はウォータールー大学で鬼ごっこをしています。ウォータールー大学は $N$ 個の建物とそれらを結ぶ $M$ 本の歩道で表されます。$i$ 番目の歩道は建物 $a_i$ と $b_i$ を結んでおり、長さは $d_i$ メートルです。どの2つの建物の間にも歩道は最大で1本しかありません。歩道同士は交差せず(つまり、ある歩道から別の歩道へ移動するには必ず建物を経由する必要があります)、橋やトンネルがあるため平面上に配置されているとは限りません。どの建物から出発しても、歩道を通って他のすべての建物に到達可能です。
Roger は建物 1 から鬼ごっこを開始し、毎秒最大 $v_1$ メートルの速さで歩くことができます。Roger は建物で待機したり、歩道上のどこかで待機したりすることもできます。Roger は鬼ごっこの継続時間を最大化するように移動します。
Troy は建物 $x$ を選び、その建物から学生のグループを放ちます。学生はすべての歩道に沿って毎秒 $v_2$ メートルの速さで広がっていきます。Troy の学生が Roger に到達した時点で鬼ごっこは終了します。
各建物 $x$ について、鬼ごっこが続く時間を求めてください。
入力
入力の最初の行は、4つの空白区切りの整数 $N, M, v_1, v_2$ で構成されます ($2 \le N \le 2000$; $N-1 \le M \le 5000$; $1 \le v_1, v_2 \le 100$)。
続く $M$ 行の各行には3つの整数が含まれており、$i$ 番目の行には整数 $a_i, b_i, d_i$ が含まれます ($1 \le a_i < b_i \le N$; $1 \le d_i \le 10000$)。
以下の表は、25点の配点の内訳を示しています。
| 配点 | 追加の制約 |
|---|---|
| 3点 | $N = 3$ かつ $M = 2$。 |
| 3点 | $N = 3$ かつ $M = 3$。 |
| 7点 | $v_1 = v_2 = 1$ かつすべての歩道の長さが 2 メートル ($d_i = 2$)。 |
| 7点 | $N \le 100$ かつ $M \le 200$。 |
| 5点 | 制約なし。 |
出力
$N-1$ 行を出力してください。$i$ 行目には、Troy が建物 $i+1$ から学生のグループを放った場合の鬼ごっこの継続時間を秒単位で出力します。時間は既約分数で出力しなければなりません。
整数 $d$ が整数 $q$ の約数であるとは、$q$ を $d$ で割った余りが 0 であることを指します。整数 $z$ が整数 $x$ と $y$ の公約数であるとは、$z$ が $x$ と $y$ の両方の約数であることを指します。分数 $x/y$ が既約であるとは、$y$ が正であり、かつ $x$ と $y$ が 1 より大きい公約数を持たないことを指します。
入出力例
入力 1
3 2 1 10 1 2 135 1 3 15
出力 1
15/1 5/3
注記 1
$x = 2$ の場合、Roger は建物 3 へ歩くべきです。15秒後、学生が建物 3 で Roger を捕まえ、鬼ごっこは終了します。
$x = 3$ の場合、Roger は建物 2 に向かって歩くべきです。5/3 秒後、学生が建物 2 と 3 の間の歩道上で Roger を捕まえ、鬼ごっこは終了します。Roger は 1.666... メートル歩き、学生は 15 + 1.666... メートル歩いたことに注意してください。
入力 2
4 4 1 1 1 2 2 1 3 2 2 3 2 1 4 2
出力 2
4/1 4/1 5/1
注記 2
$x = 2$ の場合、Roger は建物 4 へ歩くべきです。
$x = 3$ の場合、Roger は建物 4 へ歩くべきです。
$x = 4$ の場合、Roger は建物 2 と 3 の間の歩道の中央へ歩くべきです。