#P2181. 小L的宝藏(gold)

小L的宝藏(gold)

【问题描述】

小L是AYYZ默默无闻的一员,他喜欢收集宝藏,他知道学校的后花园里面藏有 P 个珍品。经过严密调查,他知道后花园分成了 N 块区域,由 M 条无向路径连接。

小L要从 1 区域出发,捡完所有的宝藏后从 N 区域离开。他现在求助你:他最短走多远就能捡完宝藏并离开?

为了简化问题,我们假设小L拿走珍品不需要花费任何时间。

【输入格式】

第 1 行两个整数 N、M。

第 2 行到第 M+1 行,每行三个整数 x、y、w,表示 x、y 号区域(1≤x、y≤N)间有一 条道路,该道路长度为 w。

第 M+2 行一个整数 P。

第 M+3 行有用空格隔开的 P 个整数,第 i 个数 Pi 代表第 i 个珍品藏在第 Pi 个区域。

【输出格式】

第 1 行为一个整数,为小L拿到所有宝藏并离开的所需走过的最短道路长度。如无法全部捡到或者无法离开,输出-1。

【输入样例】gold.in

3 2
1 2 3
2 3 4
1
2

【输入样例】gold.out

7

【输入输出样例说明】

直接按 1-2-3 路线走,可以拿走 2 区域的珍品,并以最短时间 7 到达 3 区域(即 N 号区 域)。

【数据范围】

对 30%的数据,1≤N≤10,1≤M≤100,0≤P≤5。

对 100%的数据,1≤N≤200,1≤M≤10,000,0≤P≤12,道路长度不超过 1,000,000,000。 其中,N、M、P、道路长度均为整数。