#aBC192E. [ABC192E] Train

[ABC192E] Train

AT_abc192_e [ABC192E] Train

题目描述

在 AtCoder 国有 NN 个城市,编号为 11NN,以及 MM 条铁路,编号为 11MM

ii 条铁路连接城市 AiA_i 和城市 BiB_i,并且每当时刻为 KiK_i 的倍数时,都会有列车分别从这两个城市发车前往对方。每趟列车从出发到到达需要 TiT_i 的时间。

你现在位于城市 XX。当你在时刻 00 或之后,乘坐从城市 XX 出发的列车开始移动时,求你最早能到达城市 YY 的时间。如果无法到达城市 YY,请报告这一情况。

另外,换乘所需时间可以忽略,因此在任意城市,只要你乘坐的列车到达时刻与另一趟列车的发车时刻相同,你就可以立即换乘。

输入格式

输入以以下格式从标准输入读入。

NN MM XX YY
A1A_1 B1B_1 T1T_1 K1K_1
\vdots
AMA_M BMB_M TMT_M KMK_M

输出格式

输出你能到达城市 YY 的最早时刻。如果无法到达城市 YY,则输出 1-1

输入输出样例 #1

输入 #1

3 2 1 3
1 2 2 3
2 3 3 4

输出 #1

7

输入输出样例 #2

输入 #2

3 2 3 1
1 2 2 3
2 3 3 4

输出 #2

5

输入输出样例 #3

输入 #3

3 0 3 1

输出 #3

-1

输入输出样例 #4

输入 #4

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

输出 #4

26

说明/提示

限制条件

  • 2N1052 \leq N \leq 10^5
  • 0M1050 \leq M \leq 10^5
  • 1X,YN1 \leq X, Y \leq N
  • XYX \neq Y
  • 1Ai,BiN1 \leq A_i, B_i \leq N
  • AiBiA_i \neq B_i
  • 1Ti1091 \leq T_i \leq 10^9
  • 1Ki1091 \leq K_i \leq 10^9
  • 所有输入均为整数

样例解释 1

首先,在时刻 00 乘坐第 11 条铁路,从城市 11 前往城市 22,于时刻 22 到达城市 22。随后,在时刻 44 乘坐第 22 条铁路,从城市 22 前往城市 33,于时刻 77 到达城市 33。没有比这更早到达城市 33 的方法。

样例解释 2

首先,在时刻 00 乘坐第 22 条铁路,从城市 33 前往城市 22,于时刻 33 到达城市 22。随后,在时刻 33 乘坐第 11 条铁路,从城市 22 前往城市 11,于时刻 55 到达城市 11

由 ChatGPT 4.1 翻译