#P16625. [Ukiepc2023]Journey of Recovery
[Ukiepc2023]Journey of Recovery
题目描述
你计划进行一次包含多次中转的国际旅行,并最终前往 NWERC。由于你经常乘坐廉价航空,航班可能在即将登机时被临时取消。
假设你原计划乘坐的某一趟航班,在其出发时刻恰好被取消,而其他所有航班均正常运行。此时,你会从当前机场重新规划前往最终目的地的路线,并始终选择能够最早到达的方案。
对于原行程中的每一趟航班,都可能单独发生上述取消事件。请计算最坏情况下,你抵达最终目的地的时间会比原计划晚多少分钟。
输入格式
第一行包含航班总数 :
接下来 行,第 行包含四个以空格分隔的字段:
- 出发机场代码 ,长度满足 ;
- 出发时间;
- 到达机场代码 ,长度满足 ;
- 到达时间。
时间格式为 XdHH:MM,其中:
X表示经过的整天数;d是字面字符;HH表示小时,;MM表示分钟,。
例如,2d03:15 表示第 天的 。根据样例,天数可以为 ,最大不超过 。
随后一行包含原行程中的航班数量 :
最后一行包含 个航班编号 ,按你原计划乘坐的顺序给出。
所有航班均连接两个不同机场,且到达时间严格晚于出发时间。
对于原行程中任意相邻的两趟航班 ,保证航班 的到达时间不晚于航班 的出发时间。
转机不需要额外时间:若一趟航班在某一分钟到达,你可以乘坐同一分钟出发的另一趟航班。若原计划航班在出发时刻被取消,你也可以乘坐另一趟在完全相同时刻出发的航班。
输出格式
输出一个整数,表示单独取消原行程中任意一趟航班时,最坏情况下相对于原计划的最大延误分钟数。
如果无论取消哪一趟航班都不会导致晚到(甚至可能更早到达),输出 0。
如果存在某一趟原计划航班被取消后,你无法到达最终目的地,则输出:
stranded
样例 1
输入
8
egnx 0d00:10 delft 0d01:00
delft 0d01:00 zad 0d09:00
zad 0d09:01 prg 0d15:30
prg 0d20:00 delft 1d02:15
prg 0d22:00 delft 1d04:15
zad 2d00:00 delft 3d00:00
egnx 2d00:00 delft 2d02:00
egnx 2d00:00 delft 2d02:00
4
1 2 3 4
输出
2745
样例 2
输入
3
ork 101d00:00 noc 101d00:01
ork 100d23:59 noc 101d00:02
dub 100d00:00 ork 101d00:00
2
3 1
输出
stranded
样例 3
输入
2
lax 0d00:30 hnl 0d06:20
lax 0d00:30 hnl 0d06:20
1
2
输出
0