![]() |
||||||||||
|
||||||||||
Two PathsTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 153428/153428 K (Java/Others)Total Submission(s): 3974 Accepted Submission(s): 1361 Problem Description You are given a undirected graph with n nodes (numbered from 1 to n) and m edges. Alice and Bob are now trying to play a game. Both of them will take different route from 1 to n (not necessary simple). Alice always moves first and she is so clever that take one of the shortest path from 1 to n. Now is the Bob's turn. Help Bob to take possible shortest route from 1 to n. There's neither multiple edges nor self-loops. Two paths S and T are considered different if and only if there is an integer i, so that the i-th edge of S is not the same as the i-th edge of T or one of them doesn't exist. Input The first line of input contains an integer T(1 <= T <= 15), the number of test cases. The first line of each test case contains 2 integers n, m (2 <= n, m <= 100000), number of nodes and number of edges. Each of the next m lines contains 3 integers a, b, w (1 <= a, b <= n, 1 <= w <= 1000000000), this means that there's an edge between node a and node b and its length is w. It is guaranteed that there is at least one path from 1 to n. Sum of n over all test cases is less than 250000 and sum of m over all test cases is less than 350000. Output For each test case print length of valid shortest path in one line. Sample Input
Sample Output
Hint For testcase 1, Alice take path 1 - 3 and its length is 3, and then Bob will take path 1 - 2 - 3 and its length is 5. For testcase 2, Bob will take route 1 - 2 - 1 - 2 and its length is 3 Source | ||||||||||
|