#2559. 奶牛接力跑

奶牛接力跑

题目描述

FJ\red{FJ}N(2<=N<=1,000,000)\red{N(2 <= N <= 1,000,000)}头奶牛选择了接力跑作为她们的日常锻炼项目。至于进行接力跑的地点 自然是在牧场中现有的T(2<=T<=100)\red{T(2 <= T <= 100)}条跑道上。

农场上的跑道有一些交汇点,每条跑道都连结了两个不同的交汇点 I1i\red{I1_i}I2i(1<=I1i<=1,000\red{I2_i(1 <= I1_i <= 1,000}; 1<=I2i<=1,000)\red{1 <= I2_i <= 1,000)}。每个交汇点都是至少两条跑道的端点。

奶牛们知道每条跑道的长度lengthi(1<=lengthi<=1,000)\red{length_i(1 <= length_i <= 1,000),}以及每条跑道连结的交汇点的编号 并且,没有哪两个交汇点由两条不同的跑道直接相连。你可以认为 这些交汇点和跑道构成了一张图。

为了完成一场接力跑,所有N\red{N}头奶牛在跑步开始之前都要站在某个交汇点上(有些交汇点上可能站着不只1\red{1}头奶牛)。当然,她们的站位要保证她们能够将接力棒顺次传递,并且最后持棒的奶牛要停在预设的终点。

你的任务是,写一个程序,计算在接力跑的起点(S)\red{(S)}和终点(E)\red{(E)}确定的情况下,奶牛们跑步路径可能的最小总长度。显然,这条路径必须恰好经过N\red{N}条跑道。

输入格式

1\red{1}行: 4\red{4}个用空格隔开的整数:N\red{N,}T\red{T,}S\red{S,}以及E\red{E}

2..T+1\red{2..T+1}行: 第i+1\red{i+1}3\red{3}个以空格隔开的整数:lengthi\red{length_i,}I1i\red{I1_i,}以及I2i\red{I2_i,} 描述了第i\red{i}条跑道。

输出格式

1\red{1}行: 输出1\red{1}个正整数,表示起点为S\red{S}、终点为E\red{E,}并且恰好经过N\red{N}条跑道的路 径的最小长度

样例

输入样例

2 6 6 4
11 4 6
4 4 8
8 4 9
6 6 8
2 6 9
3 8 9

输出样例

10