#P1956. 单源最短路径.2

单源最短路径.2

题目描述

如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。

输入格式

第一行包含三个整数 n,m,sn,m,s,分别表示点的个数、有向边的个数、出发点的编号。

接下来 mm 行每行包含三个整数 u,v,wu,v,w,表示一条 uvu \to v 的,长度为 ww 的边。

输出格式

输出一行 nn 个整数,第 ii 个表示 ss 到第 ii 个点的最短路径,若不能到达则输出 23112^{31}-1

样例

4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
0 2 4 3

数据范围

1n1041 \le n \le 10^4

1m5×1051 \le m \le 5\times10^5

0<w10000 \lt w \le 1000

提示

数据为随机数据。对于随机数据,SPFA 的时间复杂度为 O(m);如果数据不是随机的,在特殊情况下,SPFA 的时间复杂度会达到 O(V*E),和 Bellman-Ford 的计算复杂度一致。