题目描述
某地区有 \(N\) 个城镇,编号为 1 到 \(N\) ,并且由 \(M\) 条公路连接,编号 1 到 \(M\) 。
每条公路都是有向的;而且编号为 \(i(1 \le i \le M)\) 的道路将带领你从编号 \(A_i\) 的城镇到编号为 \(B_i\) 的城镇去,它的长度为 \(C_i\)。
现在给你一个长度为 \(K\) 的正整数序列 \(E=(E_1,E_2,...,E_K)\) 且 \(\forall i \in [1,K],E_i \in [1,M]\) 。我们说一条由一些连通的公路组成的路径为“好路”,当且仅当满足以下条件:
- 这条路径的起点为 1 ,终点为 \(N\) 。
- 按经过顺序组成这条路径的公路的编号组成的序列是 \(E\) 的子序列。
注意,若序列 \(S\) 是长度为 \(L\) 的数列 \(T\) 的子序列,则 \(S\) 是数列 \(T\) 删除任意 \(i\ (i\in [0,L])\) 个元素得到的。
现在你要找到最短的“好路”。如果没有,输出 -1
。
输入格式
一切按照以下标准输入:
\(N\ M\ K\newline A_1\ B_1\ C_1\newline\vdots\newline A_M\ B_M\ C_M\newline E_1\ ...\ E_K\)
输出格式
输出最短的“好路”。如果没有,输出 -1
。
说明/提示
数据范围
- $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ M,\ K\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ A_i,\ B_i\ \leq\ N,\ A_i\ \neq\ B_i\ ,\ (1\ \leq\ i\ \leq\ M) $
- $ 1\ \leq\ C_i\ \leq\ 10^9\ ,\ (1\ \leq\ i\ \leq\ M) $
- $ 1\ \leq\ E_i\ \leq\ M\ ,\ (1\ \leq\ i\ \leq\ K) $
- 所有输入都是整数
样例解释
对于样例1,有两条好路:
- 选择编号为 \(4\) 的公路。在这种情况下,“好路”的长度是 \(5\) 。
- 依次选择编号为 \(1\) 和 \(2\) 的公路。在这种情况下,“好路”的长度就变为了 \(2+2=4\) 。
因此,输出的期望值为 \(4\) 。
对于样例2,没有“好路”,输出 -1
。