小 A 是村里唯一的邮递员,这些年由于现代通讯方式的发展,小 A 每天要送的信件越来越少,经常几天才要送一次信。
在一个阳光明媚的早上,小 A 来到邮局,发现今年只要送 2 封信。
小 A 所在的村子,可以看作一个由 N 个点(点的编号为 1 \sim N),M 无向边条边构成的地图。邮局在编号为 S 的位置上,小 A 在地图上找到了自己今天要送信的两个点 T_1 和 T_2。
小 A 估计,如果他好好规划一下路线,他早上就能送完 2 封信了,于是他准备骑上自己的自行车,开始今天的送信工作。
请你编程帮助小 A 计算出,他送完这两封信,最少要骑车的公里数。
请注意:你只要计算出,小 A 送完这两封信,最少要骑车的公里数,不需要考虑小 A 回来的时间。
第 1 行输入 M,N,S,T_1,T_2 ,含义如题所述。
接下来的 M 行,每行输入三个整数 U_i, V_i, L_i,表示点 U_i 和 点 V_i 之间存在一条长度为 L_i 的双向道路。
输出一个整数,代表小 A 送完两封信,最少要骑车的公里数。
10 7 1 3 6 5 1 8 6 7 3 4 7 1 5 6 3 5 2 6 4 3 3 1 2 3 3 2 4 2 6 3 3 6 10
13
9 7 5 1 4 5 1 1 6 7 6 4 7 2 5 6 5 5 2 3 4 3 1 1 2 9 3 2 4 2 6 8
10
15 10 1 9 5 1 3 112 1 4 348 2 4 781 1 2 388 8 7 1231 3 2 388 5 10 812 8 6 1596 4 8 590 2 6 714 8 1 495 4 3 991 5 7 122 3 5 15 7 9 652
901
按照 1-2-6-2-3 的顺序送信,对应的路径长度为 3+3+3+4=13。
对于 30\% 的数据,满足 1 \leq M \leq 100,1 \leq N \leq 100。
对于 100\% 的数据,1 \leq M \leq 2 \times 10^5,1 \leq N \leq 10^5,1 \leq U_i,V_i \leq N,\sum L_i \leq 2 \times 10^9。