C++蒜头君-游乐场

蒜头君来到一个巨大的游乐场,这里有n个景点。景点和景点之间不能步行,只能乘坐指定的游览车。游览车的数量是无限的,只要你想乘坐就能瞬间出发。现在有m种类型的游览车,每种游览车只能在固定的两个景点u和v之间来回运作,每一趟消耗的时间为w。蒜头君现在在1号景点,他想去n号景点,请你计算最短需要花费多少时间。
输入格式
第一行两个整数 n,m(1≤n≤2500,1≤m≤2*10^5),分别表示景点数量和游览车数量。
接下来m行,每行三个整数 u,v,w (1≤u,v≤n,1≤w≤10^5,u≠v),表示每种游览车连接的两个景点,和一趟运输所需的时间。
输出格式
输出一个整数,表示最短的时间。如果无法到达n号景点,输出−1。
Sample Input
5 8
1 2 3
2 3 4
3 4 5
4 5 6
1 3 4
2 4 7
2 5 8
1 5 100
Sample Output
11

求题解,谢谢!!