2868 - 送信

题目描述

A 是村里唯一的邮递员,这些年由于现代通讯方式的发展,小 A 每天要送的信件越来越少,经常几天才要送一次信。

在一个阳光明媚的早上,小 A 来到邮局,发现今年只要送 2 封信。

A 所在的村子,可以看作一个由 N 个点(点的编号为 1 \sim N),M 无向边条边构成的地图。邮局在编号为 S 的位置上,小 A 在地图上找到了自己今天要送信的两个点 T_1T_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 解释

按照 1-2-6-2-3 的顺序送信,对应的路径长度为 3+3+3+4=13

数据范围

对于 30\% 的数据,满足 1 \leq M \leq 1001 \leq N \leq 100

对于 100\% 的数据,1 \leq M \leq 2 \times 10^51 \leq N \leq 10^51 \leq U_i,V_i \leq N\sum L_i \leq 2 \times 10^9

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 基础


上一题 下一题