7039: DP60 郊区春游
[Creator : ]
Description
今天春天铁子的班上组织了一场春游,在铁子的城市里有 $n$ 个郊区和 $m$ 条无向道路,第 $i$ 条道路连接郊区 $A_i$ 和 $B_i$,路费是 $C_i$。
经过铁子和顺溜的提议,他们决定去其中的 $R$ 个郊区玩耍(不考虑玩耍的顺序),但是由于他们的班费紧张,所以需要找到一条旅游路线使得他们的花费最少。
假设他们制定的旅游路线为 $V_1, V_2,V_3, \cdots,\ V_R$,那么他们的总花费为从 $V_1$ 到 $V_2$ 的花费加上 $V_2$ 到 $V_3$ 的花费依次类推,注意从铁子班上到 $V_1$ 的花费和从 $V_R$ 到铁子班上的花费是不需要考虑的,因为这两段花费由学校报销而且我们也不打算告诉你铁子学校的位置。
经过铁子和顺溜的提议,他们决定去其中的 $R$ 个郊区玩耍(不考虑玩耍的顺序),但是由于他们的班费紧张,所以需要找到一条旅游路线使得他们的花费最少。
假设他们制定的旅游路线为 $V_1, V_2,V_3, \cdots,\ V_R$,那么他们的总花费为从 $V_1$ 到 $V_2$ 的花费加上 $V_2$ 到 $V_3$ 的花费依次类推,注意从铁子班上到 $V_1$ 的花费和从 $V_R$ 到铁子班上的花费是不需要考虑的,因为这两段花费由学校报销而且我们也不打算告诉你铁子学校的位置。
Input
第一行三个整数 $n, m, R\ (2 ≤ n ≤ 200, 1 ≤ m ≤ 5000, 2 ≤ R ≤ \text{min}(n, 15))$。
第二行 $R$ 个整数表示需要去玩耍的郊区编号。
以下 $m$ 行每行 $A_i, B_i, C_i\ (1 ≤ A_i, B_i ≤ n, A_i ≠ B_i, C_i ≤ 10000)$
保证不存在重边。
第二行 $R$ 个整数表示需要去玩耍的郊区编号。
以下 $m$ 行每行 $A_i, B_i, C_i\ (1 ≤ A_i, B_i ≤ n, A_i ≠ B_i, C_i ≤ 10000)$
保证不存在重边。
Output
输出一行表示最小的花费。
Sample 1 Input
4 6 3
2 3 4
1 2 4
2 3 3
4 3 1
1 4 1
4 2 2
3 1 6
Sample 1 Output
3