#P5237. 「泉州基地校201811D6」3.野外拓展训练

「泉州基地校201811D6」3.野外拓展训练

Description

Nicloe 所在的公司经常组织职员进行一些拓展训练。上个季度刚刚举行了一次定向运动,大家反映很好。这个月轮到 Nicloe 的部门做策划,既然大家都已经熟悉了看地图和使用指南针,她们决定在森林公园做一次与定向运动类似的野外拓展训练,不过规则稍作修改。

由于大家不是专业运动员,体力有限,现在 Nicloe 准备通过计算机的帮助寻找各种情况下的最短路线,以便从中选出部分作为本次拓展训练的方案,请你帮忙设计程序。制定的规则如下:地图上包括起点与终点在内共 NN 个点,每两点之间有一条单行道,共有 MM 条;从所有点中选择其中 KK 个作为一个方案的有效点标,允许大家从规定的起点按任意顺序经过所有有效点标到达规定的终点,求出最短距离。

Input Format

第一行 5 个整数 n,m,k,s,tn,m,k,s,t,分别表示地图上已有点的总个数、每两点间单行道总条数、本次有效点标个数、起点编号、终点编号。

接下来 mm 行,每行 3 个整数 x,y,zx,y,z,表示有一条从 xx 点到 yy 点的长度为 zz 的单行道。

接下来 kk 行,每行 1 个整数,表示本次有效点标的编号。

Output Format

输出一个整数,表示最短距离,若没有方案可行则输出-1。

Sample

【输入样例 1】

3 3 2 1 1
1 2 1
2 3 1
3 1 1
2
3

【输出样例 1】

3

【样例 1 解释】

路径为 1->2->3->1。

【输入样例 2】

4 6 2 1 1
1 2 1
2 3 1
3 4 1
4 1 1
3 1 1
4 2 1
3
4

【输出样例 2】

4

【样例 2 解释】

路径为 1->2->3->4->1。

Hint

20%20\% 的数据 n10n \le 10

50%50\% 的数据 n1000n \le 1000

100%100\% 的数据 n50000n \le 50000m100000m \le 1000000k100 \le k \le 101z50001 \le z \le 5000

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