#abc073d. [abc073_d]joisino's travel

[abc073_d]joisino's travel

题目描述

在Atcoder州里有 NN 个城镇,由 MM 条双向道路连接。

ii 条道路连接了城镇 AiA_iBiB_i,长度为 CiC_i

Joisino 正在此州访问 RR 个城镇,分别为 r1,r2,..,rRr_1,r_2,..,r_R(不一定按顺序)。

她将飞往第一个访问的城镇,并从最后一个访问的城镇返回,但在剩下的旅程中她必须通过道路旅行。

如果她按照最小化道路行驶距离的顺序访问城镇,那么行驶距离是多少?

约束条件

  • 2N2002≤N≤200
  • 1MN×(N1)/21≤M≤N×(N-1)/2
  • 2Rmin(8,N)2≤R≤min(8,N)min(8,N)min(8,N)88NN 中较小的一个。)
  • rirj(ij)r_i≠r_j (i≠j)
  • 1Ai,BiN,AiBi1≤A_i,B_i≤N, A_i≠B_i
  • (Ai,Bi)(Aj,Bj),(Ai,Bi)(Bj,Aj)(ij)(A_i,B_i)≠(A_j,B_j),(A_i,B_i)≠(B_j,A_j) (i≠j)
  • 1Ci1000001≤C_i≤100000
  • 每个城镇都可以通过道路互相到达。
  • 所有输入值均为整数。

输入

输入以以下格式从标准输入给出:

NN MM RR r1r_1 ...... rRr_R A1A_1 B1B_1 C1C_1 :: AMA_M BMB_M CMC_M

输出

如果Joisino按照最小化行驶距离的顺序访问城镇,则输出所行驶的道路距离。


示例输入 1

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

示例输出 1

2

例如,如果她按照 112233 的顺序访问城镇,行驶距离将为 22,这是可能的最小距离。


示例输入 2

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

示例输出 2

4

城镇 11 和城镇 33 之间的最短距离为 44。因此,无论她先访问城镇 11 还是城镇 33,行驶距离都将为 44


示例输入 3

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

示例输出 3

3