#B0193. 错峰发车
错峰发车
题目描述
一条城际铁路网共有 个车站,编号为 。
车站之间有 条双向铁路。每条铁路连接两个车站,列车在这条铁路上运行需要固定时间 。
Aki 需要从车站 出发,尽快到达车站 。他在时刻 位于车站 。
但是每个车站都有一些禁止发车时刻。如果 Aki 在车站 的某个时刻 想要发车,而 恰好属于该车站的禁止发车时刻表,那么他不能在这个时刻离开,只能继续等待。
更准确地说:
- 如果 Aki 在时刻 到达车站 ;
- 只要时刻 被禁止发车,他就必须等待到 ;
- 若新的时刻仍然被禁止发车,就继续等待;
- 直到遇到第一个允许发车的时刻,才能选择一条铁路离开。
注意:一旦到达终点车站 ,旅程立即结束,不需要再考虑终点的禁止发车时刻。
请你求出从车站 到车站 的最早到达时间。如果无法到达,输出 。
输入格式
第一行两个整数 。
接下来 行,每行三个整数 ,表示车站 和车站 之间有一条双向铁路,运行时间为 。
接下来 行,第 行先给出一个整数 ,表示车站 的禁止发车时刻个数;随后给出 个严格递增的整数,表示这些禁止发车时刻。
数据范围:
- 所有 的总和不超过
- 禁止发车时刻均为非负整数,且不超过
输出格式
输出一个整数,表示最早到达车站 的时间;如果无法到达,输出 -1。
4 4
1 2 2
2 4 2
1 3 1
3 4 5
2 0 1
1 2
0
1 1
6
4 2
1 2 3
3 4 1
0
0
0
0
-1