U169611.[ABC192E] Train
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
某国有 N 座城市,编号 1 到 N,之间有 M 条双向列车线路。第 i 条线路连接城市 Ai 与 Bi,单程耗时 Ti,并且只在时刻为 Ki 的倍数时发车(即时刻 0,Ki,2Ki,3Ki,⋯)。
如果你在时刻 t 到达某城市,想搭乘一条 K 值为 Ki 的线路,需要等到不早于 t 的最近一个 Ki 的倍数才能发车,即等待到时刻 ⌈t/Ki⌉×Ki,到达对面城市的时刻为该发车时刻加上 Ti。
你在时刻 0 从城市 X 出发,求最早到达城市 Y 的时刻;如果无法到达,输出 −1。
输入格式
第一行四个整数 N,M,X,Y。
接下来 M 行,每行四个整数 Ai,Bi,Ti,Ki,表示一条连接 Ai 与 Bi 的双向线路,单程耗时 Ti,发车间隔 Ki。
输出格式
一行一个整数,表示从城市 X 最早到达城市 Y 的时刻;若无法到达,输出 −1。
输入输出样例
输入#1
3 3 1 3 1 2 10 3 2 3 5 2 1 3 80 1
输出#1
15
说明/提示
数据范围:2≤N≤105,1≤M≤105,1≤Ti,Ki≤109。
样例说明:时刻 0 从城市 1 乘坐第 1 条线路(K=3,时刻 0 恰为发车时刻),耗时 10,于时刻 10 到达城市 2;再乘坐第 2 条线路(K=2,时刻 10 恰为发车时刻),耗时 5,于时刻 15 到达城市 3。直接乘坐第 3 条线路则需要到时刻 80 才能到达,不如前者。
输入解题思路,AI测评打分。不知道怎么写?