#P2149. 理想国 - 最长路径

理想国 - 最长路径

Problem Description

在约会的过程中,网瘾少年决定和小女孩一起在理想国散步。

​ 理想国由 nn 个观景点和 mm 条有向道路组成。每条道路 ii 连接观景点 uiu_i 到 viv_i,行走这条路需要花费 wiw_i 的时间。网瘾少年和小女孩目前的终点是理想国的中心广场 SS。

​ 理想国有 kk 个著名的起始打卡点,网瘾少年可以带着小女孩从这 kk 个点中的任意一个出发前往终点 SS。

​ 网瘾少年深知“陪伴是最长情的告白”。他希望他们在一起散步的时间尽可能地长。然而,他也不忍心让小女孩走冤枉路感到劳累,因此他向小女孩承诺:无论从哪个起点出发,他们走的一定是该起点到终点 SS 的最短路径。

​ 请你帮网瘾少年计算:在所有能够到达 SS 的起始打卡点中,选择哪一个起点出发,能让他们在“走最短路”的前提下,相处的时间最长?输出这个最长的时间

Input Format

第一行包含三个整数 n,m,Sn, m, S (1≤n,m≤2⋅105,1≤S≤n1 \le n, m \le 2 \cdot 10^5, 1 \le S \le n),分别表示观景点的数量、道路的数量以及终点的编号。

​ 接下来 mm 行,每行包含三个整数 ui,vi,wiu_i, v_i, w_i (1≤ui,vi≤n,1≤wi≤1091 \le u_i, v_i \le n, 1 \le w_i \le 10^9),表示有一条从 uiu_i 到 viv_i 的单向道路,权值为 wiw_i。

​ 下一行包含一个整数 kk (1≤k≤n1 \le k \le n),表示起始打卡点的数量。

​ 最后一行包含 kk 个不同的整数 P1,P2,…,PkP_1, P_2, \dots, P_k (1≤Pj≤n1 \le P_j \le n),表示这些打卡点的编号。

Output Format

输出一个整数。表示在所有可选起点中,到 SS 的最短路径长度的最大值。如果所有给定的打卡点都无法到达 SS,请输出 −1-1。

Sample

样例 1

输入:

4 4 4
1 2 5
2 4 10
3 4 20
1 4 25
2
1 3

输出:

20

说明:

打卡点有两个:1 和 3。终点是 4。

  • 从起点 1 到 4 的最短路:1→2→41 \to 2 \to 4,耗时 5+10=155 + 10 = 15。

  • 从起点 3 到 4 的最短路:3→43 \to 4,耗时 2020。

    最长的时间是 2020。


样例 2

输入:

3 1 1
2 3 10
1
3

输出:

-1

Hint

1≤n,m≤2⋅105,1≤S≤n1 \le n, m \le 2 \cdot 10^5, 1 \le S \le n 1≤ui,vi≤n,1≤wi≤1091 \le u_i, v_i \le n, 1 \le w_i \le 10^9 1≤k≤n1 \le k \le n 1≤Pj≤n1 \le P_j \le n