SP14925 GRAFFTRI - King Graffs Trip
题目描述
Feerie 的统治者,国王 Graff,决定在他的王国中进行一次旅行!他希望给他的子民们一个机会,让他们看到他们伟大的国王,就像他也是一个没有未来的小人物一样。
这个王国由 $N$ 个城镇(编号为 $1$ 到 $N$)和 $M$ 条道路组成。第 $i$ 条道路是单向的,从城镇 $A_i$ 通往不同的城镇 $B_i$,通行时间为 $T_i$ 分钟。任何一对城镇之间在同一方向上都不会有多余一条的直接道路。国王计划从城镇 $X$ 出发,并希望在不超过 $L$ 分钟内到达另一个城镇 $Y$。
然而,Graff 不喜欢长时间不被他的子民崇拜,而每当经过为他建造的神殿,他便能获得这种满足感。$S$ 个城镇拥有这样的神殿,第 $i$ 个神殿位于城镇 $H_i$。国王希望他的行程中连续不经过神殿的时间段越短越好。作为皇家计算机科学家,你需要帮他计算出这个时间段的最小长度,或者告诉国王在时间限制内无法完成旅行。如果从城镇 $X$ 到城镇 $Y$ 没有任何路径可以到达,那么旅行就是不可能完成的。
输入格式
第一行:五个整数,分别是 $N$、$M$、$X$、$Y$ 和 $L$。
接下来 $M$ 行:每行包含三个整数,$A_i$、$B_i$ 和 $T_i$,表示第 $i$ 条道路的信息。
接下来一行:一个整数 $S$。
接下来的 $S$ 行:每行一个整数 $H_i$,表示第 $i$ 个神殿所在的城镇。
输出格式
输出一个整数——旅行中连续不经过神殿的最长时间段的最小值(单位:分钟)。如果无法在至多 $L$ 分钟内完成旅行,输出 -1。
**本翻译由 AI 自动生成**