atcoder#ABC192E. [ABC192E] Train

[ABC192E] Train

题目描述

AtCoder国には 1 1 から N N の番号がついた N N 個の都市と、1 1 から M M の番号がついた M M 本の鉄道があります。

鉄道 i i は都市 Ai A_i と都市 Bi B_i の間を結んでおり、時刻が Ki K_i の倍数になる毎に、双方の都市からそれぞれ他方の都市への列車が発車します。この列車は出発から到着までに Ti T_i の時間がかかります。

あなたはいま都市 X X にいます。時刻 0 0 またはそれ以降に都市 X X を発車する列車に乗って移動を開始するとき、都市 Y Y には最速でいつたどり着けるか求めてください。都市 Y Y にたどり着くことが出来ない場合はそのことを報告してください。
ただし、乗り換えにかかる時間は無視できるため、どの都市においても、あなたの乗っている列車の到着時刻と同時に発車する別の列車に乗り換えることが可能であるとします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M X X Y Y A1 A_1 B1 B_1 T1 T_1 K1 K_1 \vdots AM A_M BM B_M TM T_M KM K_M

输出格式

都市 Y Y にたどり着くことができる最も早い時刻を出力せよ。ただし、都市 Y Y にたどり着くことが出来ない場合はかわりに -1 と出力せよ。

题目大意

给定 NN 个编号为 11NN 的城市以及 MM 条铁路。

ii 条铁路连接城市 AiA_iBiB_i,每当时间为 KiK_i 的倍数时会同时、分别从 AiA_iBiB_i 发出开往对方的列车,列车从出发至到达花费 TiT_i 时间。

开始时你在城市 XX,输出你到达城市 YY 的最早时间。若无法到达,输出 -1

忽略转车所需要的时间。即,当你 TT 时刻到达某个城市时,可以立刻乘坐 TT 时刻从这个城市发出的列车。

3 2 1 3
1 2 2 3
2 3 3 4
7
3 2 3 1
1 2 2 3
2 3 3 4
5
3 0 3 1
-1
9 14 6 7
3 1 4 1
5 9 2 6
5 3 5 8
9 7 9 3
2 3 8 4
6 2 6 4
3 8 3 2
7 9 5 2
8 4 1 9
7 1 6 9
3 9 9 3
7 5 1 5
8 2 9 7
4 9 4 4
26

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 0  M  105 0\ \leq\ M\ \leq\ 10^5
  • 1  X,Y  N 1\ \leq\ X,Y\ \leq\ N
  • X  Y X\ \neq\ Y
  • 1  Ai,Bi  N 1\ \leq\ A_i,B_i\ \leq\ N
  • Ai  Bi A_i\ \neq\ B_i
  • 1  Ti  109 1\ \leq\ T_i\ \leq\ 10^9
  • 1  Ki  109 1\ \leq\ K_i\ \leq\ 10^9
  • 入力は全て整数

Sample Explanation 1

まず、時刻 0 0 に鉄道 1 1 に乗って、都市 1 1 から都市 2 2 へ移動します。都市 2 2 には時刻 2 2 に到着します。 その後、時刻 4 4 に鉄道 2 2 に乗って、都市 2 2 から都市 3 3 へ移動します。都市 3 3 には時刻 7 7 に到着します。 これより早く都市 3 3 に着く方法はありません。

Sample Explanation 2

まず、時刻 0 0 に鉄道 2 2 に乗って、都市 3 3 から都市 2 2 へ移動します。都市 2 2 には時刻 3 3 に到着します。 その後、時刻 3 3 に鉄道 1 1 に乗って、都市 2 2 から都市 1 1 へ移動します。都市 1 1 には時刻 5 5 に到着します。