2552: 地铁路线

Memory Limit:128 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:250 Solved:118

Description

公元8888年,大部分地球居民都迁移至S星球。在S星球,有n个城市,m段高速地铁。地铁是按路程来收费的,举个例子,城市1到城市n的路程是99公里,那么收取99个S币。如果城市1到城市n有多条路径可以选择,按最短那条路来收费。 现在,有一个好人要坐地铁,他要从城市x坐到城市y,请问他需要花费多少个S币? 为什么说他是好人呢?因为他从来不做“损人”的事情。比如说,他做地铁,从x到y,可以有很多条线路,有些线路长,有些线路短,如果选了线路长的,那么地铁不就“亏”了吗?因此,他会选择最短那条线路。请输出这个好人坐地铁的行走路线。

Input

第一行:4个整数n、m、x、y 接下来m行,每行3个整数a、b、c,表示城市a到城市b的路程是c公里

Output

第一行:输出费用 第二行:输出路线 (如果不能到达,仅输出一行,即一个0)

Sample Input Copy

5 5 1 3
1 2 5
2 3 8
1 4 2
4 5 2
5 3 2

Sample Output Copy

6
1 4 5 3

HINT

数据范围 5 <= n <= 10000 10 <= m <= 100000 1 <= a、b <= n 1 <= c <= 100 60%的数据:n <= 5000 80%的数据:n <= 8000

加入题单

算法标签: