U169611.[ABC192E] Train

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

某国有 NN 座城市,编号 11 到 NN,之间有 MM 条双向列车线路。第 ii 条线路连接城市 AiA_i 与 BiB_i,单程耗时 TiT_i,并且只在时刻为 KiK_i 的倍数时发车(即时刻 0,Ki,2Ki,3Ki,⋯0, K_i, 2K_i, 3K_i, \cdots)。

如果你在时刻 tt 到达某城市,想搭乘一条 KK 值为 KiK_i 的线路,需要等到不早于 tt 的最近一个 KiK_i 的倍数才能发车,即等待到时刻 ⌈t/Ki⌉×Ki\lceil t / K_i \rceil \times K_i,到达对面城市的时刻为该发车时刻加上 TiT_i。

你在时刻 00 从城市 XX 出发,求最早到达城市 YY 的时刻;如果无法到达,输出 −1-1。

输入格式

第一行四个整数 N,M,X,YN, M, X, Y。
接下来 MM 行,每行四个整数 Ai,Bi,Ti,KiA_i, B_i, T_i, K_i,表示一条连接 AiA_i 与 BiB_i 的双向线路,单程耗时 TiT_i,发车间隔 KiK_i。

输出格式

一行一个整数,表示从城市 XX 最早到达城市 YY 的时刻;若无法到达,输出 −1-1。

输入输出样例

  • 输入#1

    3 3 1 3
    1 2 10 3
    2 3 5 2
    1 3 80 1
    

    输出#1

    15
    

说明/提示

数据范围:2≤N≤1052 \le N \le 10^5,1≤M≤1051 \le M \le 10^5,1≤Ti,Ki≤1091 \le T_i, K_i \le 10^9。

样例说明:时刻 00 从城市 11 乘坐第 11 条线路(K=3K=3,时刻 00 恰为发车时刻),耗时 1010,于时刻 1010 到达城市 22;再乘坐第 22 条线路(K=2K=2,时刻 1010 恰为发车时刻),耗时 55,于时刻 1515 到达城市 33。直接乘坐第 33 条线路则需要到时刻 8080 才能到达,不如前者。

输入解题思路,AI测评打分。不知道怎么写?

首页