#D. 旅游巴士

    Type: FileIO (bus) 1000ms 256MiB

旅游巴士

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。

旅游景点的地图共有 nn 处地点,在这些地点之间连有 mm 条道路。其中 11 号地点为景区入口,nn 号地点为景区出口。我们把一天当中景区开门营业的时间记为 00 时刻,则从 00 时刻起,每间隔 kk 单位时间便有一辆旅游巴士到达景区入口,同时有一辆旅游巴士从景区出口驶离景区。

所有道路均只能单向通行。对于每条道路,游客步行通过的用时均为恰好 11 单位时间。

小 Z 希望乘坐旅游巴士到达景区入口,并沿着自己选择的任意路径走到景区出口,再乘坐旅游巴士离开,这意味着他到达和离开景区的时间都必须是 kk 的非负整数倍。由于节假日客流众多,小 Z 在旅游巴士离开景区前只想一直沿着景区道路移动,而不想在任何地点(包括景区入口和出口)或者道路上停留

出发前,小 Z 忽然得知:景区采取了限制客流的方法,对于每条道路均设置了一个 “开放时间”aia _ i,游客只有不早于 aia _ i 时刻才能通过这条道路。

请帮助小 Z 设计一个旅游方案,使得他乘坐旅游巴士离开景区的时间尽量地早。

输入格式

输入的第一行包含 3 个正整数 n,m,kn, m, k,表示旅游景点的地点数、道路数,以及旅游巴士的发车间隔。

输入的接下来 mm 行,每行包含 3 个非负整数 ui,vi,aiu _ i, v _ i, a_ i,表示第 ii 条道路从地点 uiu _ i 出发,到达地点 viv _ i,道路的“开放时间”为 aia _ i

输出格式

输出一行,仅包含一个整数,表示小 Z 最早乘坐旅游巴士离开景区的时刻。如果不存在符合要求的旅游方案,输出 -1

样例 #1

样例输入 #1

5 5 3
1 2 0
2 5 1
1 3 0
3 4 3
4 5 1

样例输出 #1

6

提示

【样例 #1 解释】

小 Z 可以在 33 时刻到达景区入口,沿 13451 \to 3 \to 4 \to 5 的顺序走到景区出口,并在 66 时刻离开。

【样例 #2】

见附件中的 bus/bus2.inbus/bus2.ans

【数据范围】

对于所有测试数据有:2n1042 \leq n \leq 10 ^ 41m2×1041 \leq m \leq 2 \times 10 ^ 41k1001 \leq k \leq 1001ui,vin1 \leq u _ i, v _ i \leq n0ai1060 \leq a _ i \leq 10 ^ 6

测试点编号 nn \leq mm \leq kk \leq 特殊性质
121 \sim 2 1010 1515 100100 ai=0a _ i = 0
353 \sim 5
676 \sim 7 10410 ^ 4 2×1042 \times 10 ^ 4 11 ai=0a _ i = 0
8108 \sim 10
111311 \sim 13 100100 ai=0a _ i = 0
141514 \sim 15 uiviu _ i \leq v _ i
162016 \sim 20

CSP2023 J组改题

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2023-10-30 10:00
End at
2023-12-11 2:00
Duration
1000 hour(s)
Host
Partic.
22