A90625.Rendez-vous de Marian et Robin
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
在谦卑的相会之举中,喜悦如盛开的花朵般绽放。
分别让心愈加思念。Marian 在市场卖出了最后一件商品的同时,Robin 在 Major Oak 完成了训练。他们迫不及待地想要见面,于是两人都毫不耽搁地出发了。
旅行网络由 n 个顶点组成,编号为 1 到 n,以及 m 条边。第 i 条边连接顶点 ui 和 vi,需要 wi 秒才能通过(所有 wi 都是偶数)。Marian 从顶点 1(市场)出发,Robin 从顶点 n(Major Oak)出发。
此外,n 个顶点中有 h 个顶点各有一匹马。Marian 和 Robin 都会骑马,并且上马不需要时间(即 0 秒)。骑马时,行进时间减半。一旦上马,马会持续到旅途结束。两人必须在顶点上相遇(即不能在边上相遇)。任意一方都可以选择在任意顶点等待。
请输出 Robin 和 Marian 最早可以相遇的时间。如果顶点 1 和 n 不连通,则输出 −1,表示相会取消。
输入格式
第一行输入一个整数 t(1≤t≤104)——表示测试用例数量。
每个测试用例的第一行包含三个整数 n、m、h(2≤n≤2×105,1≤m≤2×105,1≤h≤n)——分别表示顶点数、边数和有马的顶点数。
每个测试用例的第二行包含 h 个互不相同的整数 a1,a2,…,ah(1≤ai≤n)——表示有马的顶点编号。
接下来 m 行,每行三个整数 ui,vi,wi(1≤ui,vi≤n,2≤wi≤106)——表示有一条边连接顶点 ui 和 vi,不骑马通过该边需要 wi 秒。
没有自环和重边。所有 wi 都是偶数。
保证所有测试用例中 n 和 m 的总和不超过 2×105。
输出格式
对于每个测试用例,输出一个整数,表示 Robin 和 Marian 最早可以相遇的时间。如果他们无法相遇,输出 −1。
输入输出样例
输入#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
输出#1
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 等待。