在平凡的相遇中,喜悦如花朵般绽放。
分离让心更加牵挂。Marian 在集市卖完最后一件货物的同时,Robin 在大橡树完成了训练。他们迫不及待地想见面,于是两人立刻出发。
旅行网络由 n 个顶点(编号从 1 到 n)和 m 条边组成。第 i 条边连接顶点 u_i 和 v_i,需要 w_i 秒来通行(所有 w_i 均为偶数)。Marian 从顶点 1(集市)出发,Robin 从顶点 n(大橡树)出发。
此外,h 个顶点各有一匹马可用。Marian 和 Robin 都是熟练的骑手,可以瞬间上马(即 0 秒)。骑马时通行时间减半。一旦上马,马持续使用到行程结束。会面必须发生在顶点上(即不能在边上)。任何一方都可以选择在任意顶点等待。
输出 Robin 和 Marian 能够会面的最早时间。如果顶点 1 和 n 不连通,输出 -1,表示会面取消。
第一行包含一个整数 t(1 \le t \le 10^4)——测试用例的数量。
每个测试用例的第一行包含三个整数 n、m、h(2 \le n \le 2 \cdot 10^5,1 \le m \le 2 \cdot 10^5,1 \le h \le n)——顶点数、边数和有马的顶点数。
每个测试用例的第二行包含 h 个不同的整数 a_1, a_2, \dots, a_h(1 \le a_i \le n)——有马的顶点。
接下来每个测试用例有 m 行,每行三个整数 u_i、v_i、w_i(1 \le u_i, v_i \le n,2 \le w_i \le 10^6)——表示顶点 u_i 和 v_i 之间有一条无马时的通行时间为 w_i 秒的边。
没有自环或重边。幸运的是,所有 w_i 均为偶数。
保证所有测试用例的 n 和 m 之和均不超过 2 \cdot 10^5。
对于每个测试用例,输出一个整数,表示 Robin 和 Marian 能够会面的最早时间。如果他们无法会面,输出 -1。
6 2 1 1 1 1 2 10 3 1 2 2 3 1 2 10 3 3 1 2 1 2 4 1 3 10 2 3 6 4 3 2 2 3 1 2 10 2 3 18 3 4 16 3 2 1 2 1 2 4 1 3 16 7 7 1 3 1 5 2 2 6 12 1 2 12 6 4 8 7 3 4 6 3 4 7 6 4
5 -1 6 19 14 12
注意
在第一个测试用例中,Marian 从顶点 1 骑马到顶点 2,Robin 等待。
在第二个测试用例中,顶点 1 和顶点 3 不连通。
在第三个测试用例中,Marian 和 Robin 都前往顶点 2 会面。
在第四个测试用例中,Marian 不骑马前往顶点 2,在顶点 2 上马,然后骑马到顶点 3 与 Robin 会面。
在第五个测试用例中,Marian 不骑马前往顶点 2,在顶点 2 上马,然后骑马返回顶点 1,再前往顶点 3。Robin 等待。