3977: Sky 不会走路

内存限制:512 MB 时间限制:4.000 S
评测方式:文本比较 命题人:
提交:46 解决:15

题目描述

walk.cpp/in/out

大样例

Sky 不会走路,但是他很喜欢旅游。

Sky 所在的城市有 $n$ 个街区,街区之间共有 $m$ 条双向通行的道路,且任意两个街区可以通过这些道路互相到达。

一天,Sky 要从 $1$ 号街区走到 $n$ 号街区。为了节省时间,Sky 只会走从 $1$ 到 $n$ 的最短路径。

另外,有 $k$ 个街区非常拥堵,Sky 不喜欢堵车,因此他只会从不经过任何一个这样的街区的最短路径中选择一条走。如果所有最短路径都会经过这样的街区,Sky 就会放弃出行。

但是 Sky 觉得这个问题还是太简单了,所以 Sky 又给了加了一个额外的限制: 要求他所走的路径除了满足上面的条件,还要求路径上经过的所有道路的长度的最小值尽可能的大,并且请你输出这个最值。

如果 Sky 放弃出行,我们认为这个值为 $0$。

输入

第一行三个数 $n, m, k$ ; 
第二行 $k$ 个数,表示拥堵的街区编号; 
之后 $m$ 行,每行三个数 $u, v, w$,表示有一条从 $u$ 到 $v$ 的长度为为 $w$ 的道路。


输出

输出一行一个数表示符合题目条件的路径中,最小的道路长度。

样例输入 复制

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

样例输出 复制

1

提示

### 数据范围

对于 $10\%$ 的数据 $n, m \le 50$, $m-n \le 10$ ;

对于 $30\%$ 的数据 $n, m \le 10^3$ ;

对于 $60\%$ 的数据 $n, m \le 10^5$ ;

另有 $20\%$ 的数据 $k = 0$ ;

对于 $100\%$ 的数据 $1 \le n, m \le 10^6$, $0 \le k \le n$, $0 \le w \cdot n $ ,$\le 10^9$。不保证没有重边,保证没有自环。