#z115. 单源次短路

单源次短路

题目描述
给定一个有向图,包含 n 个节点和 m 条边。每条边都有一个正权值。现在指定一个源点 s,要求计算从源点 s 到其他每个节点的次短路长度。次短路是指从源点到某节点所有路径中长度第二短的路径长度。如果不存在次短路(即到某节点只有一条路径),则输出 -1

输入

  • 第一行输入三个整数 nms,分别表示节点数、边数和源点编号,以空格分隔。
  • 接下来 m 行,每行输入三个整数 uvw,表示存在一条从节点 u 到节点 v 的有向边,权值为 w,以空格分隔。

输出
输出 n-1 行,第 i 行(i = 1,2,…,n-1)输出从源点 s 到节点 i+1(如果 i+1 ≠ s)的次短路长度,如果不存在次短路则输出 -1

样例
输入:

4 4 1  
1 2 100  
2 4 200  
2 3 200  
3 4 100  

输出:

-1
-1
400