cyh 的城市重建
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
cyh 最近在玩的星战游戏非常有趣!
甚至可以自己建造星际城市,但是这个游戏存在战争系统,你可以进攻他人的城市,占领他们的城市来获得资源
有一天睡醒以后,cyh 打开游戏发现自己的城市被全部摧毁了!
这可是 cyh 花费了不知道多少天的心血好不容易打造的城市,整理心情后的 cyh 决定先检查一下城市的状况
城市中共有 个资源收集点,然而一个资源点的资源并不足以让 cyh 快速重建城市
经过 cyh 的仔细观察,他发现还剩下 条运输路线可以快速修复,其中第 条运输路线连通 两个编号的资源收集点,修复需要花费 个金币
然而修复那么多运输路线实在是太耗费金币了,cyh 并不想在游戏里氪金
经过他再次更加仔细的观察,他整理出了 个资源收集点的编号,这 个点的资源远多于其他的资源收集点
所以他只要在这 个点中选出两个资源收集点,并将它们之间的运输路线打通,即可获得足够的资源重建城市
现在 cyh 想知道,他最少需要花费多少金币来修复运输路线?
P.S. 题目并不保证任意两点之间存在运输路线,可能两个资源收集点之间的连通需要经过其他资源收集点
输入格式
第一行包含一个整数 ,代表测试用例的数量。
对于每组测试用例,第一行包含两个整数 ,代表资源收集点的数量和运输路线的数量
接下来 行每行包含三个整数 $u_i,v_i,w_i\ (1\le u_i,v_i\le n,1\le w_i\le 100000)$。表示一条运输路线连接 和 ,修复需要花费 的金币
然后一行包含一个整数 ,表示cyh 选出来的 个资源收集点编号
然后一行包含 个互不相同的整数 ,代表每个资源收集点的编号
输出格式
共 行,每行一个整数表示cyh 最少需要花费的金币数量
数据范围
| 数据组号 | n | m | k |
|---|---|---|---|
| 1 | 10 | ||
| 2 | 500 | 100000 | 2 |
| 3 | 100000 | ||
| 4~5 | 20 | ||
| 6~10 | 100000 | ||
题目保证输入的图一定连通
样例输入
1
5 6
1 2 1
2 3 3
3 1 3
2 5 1
2 4 2
4 3 1
3
1 3 5
样例输出
2
样例解释
选择 号和 号连通,只需要修复 和 这两条路线,金币花费为