说明
J 国有 n 座城市,这些城市之间通过 m 条单向道路相连,已知每条道路的长度。
一次,居住在 J 国的 Rainbow 邀请 Vani 来作客。不过,作为一名资深的旅行者,Vani 只对 J 国的 k 座历史悠久、自然风景独特的城市感兴趣。
为了提升旅行的体验,Vani 想要知道他感兴趣的城市之间「两两最短路」的最小值(即在他感兴趣的城市中,最近的一对的最短距离)。
也许下面的剧情你已经猜到了——Vani 这几天还要忙着去其他地方游山玩水,就请你帮他解决这个问题吧。
输入格式
每个测试点包含多组数据,第一行是一个整数 T,表示数据组数。注意各组数据之间是互相独立的。
对于每组数据,第一行包含三个正整数 n,m,k,表示 J 国的 n 座城市(从 1∼n 编号),m 条道路,Vani 感兴趣的城市的个数 k。
接下来 m 行,每行包括 3 个正整数 x,y,z,表示从第 x 号城市到第 y 号城市有一条长度为 z 的单向道路。注意 x,y 可能相等,一对 x,y 也可能重复出现。
接下来一行包括 k 个正整数,表示 Vani 感兴趣的城市的编号。
输出格式
输出文件应包含 T 行,对于每组数据,输出一个整数表示 k 座城市之间两两最短路的最小值。
样例
提示
样例解释
对于第一组数据,1 到 3 最短路为 5;1 到 6 最短路为 7;3,6 无法到达,所以最近的两点为 1,3,最近的距离为 5。
对于第二组数据,1 到 2 最短路为 6;5 到 3 最短路为 6;其余的点均无法互相达,所以最近的两点为 1,2 和 5,3,最近的距离为 6。
数据范围
2≤k≤n,1≤x,y≤n,1≤z≤2×109,T≤5。
测试点编号 | n 的规模 | m 的规模 | 约定 |
---|
1 | ≤1,000 | ≤5,000 | 无 |
2 | ≤1,000 | ≤5,000 | 无 |
3 | ≤100,000 | ≤500,000 | 保证数据为有向无环图 |
4 | ≤100,000 | ≤500,000 | 保证数据为有向无环图 |
5 | ≤100,000 | ≤500,000 | 保证数据为有向无环图 |
6 | ≤100,000 | ≤500,000 | 无 |
7 | ≤100,000 | ≤500,000 | 无 |
8 | ≤100,000 | ≤500,000 | 无 |
9 | ≤100,000 | ≤500,000 | 无 |
10 | ≤100,000 | ≤500,000 | 无 |