#P5639. 奶牛接力跑

奶牛接力跑

题目描述

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

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

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

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

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

输入格式

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

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

输出格式

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

样例

输入样例

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

输出样例

10