2619 - Floyd 算法

通过次数

67

提交次数

185

时间限制 : 2 秒
内存限制 : 128 MB

给出一张由 n 个点 m 条边(有重复点对的边)组成的无向图。 求出所有点对 (i,j) 之间的最短路径。

输入

第一行为两个整数 n,m,分别代表点的个数和边的条数。 接下来 m 行,每行三个整数 u,v,w,代表 u,v 之间存在一条边权为 w 的边。

输出

输出 n 行每行 n 个整数。 第 i 行的第 j 个整数代表从 i 到 j 的最短路径。

样例

输入

4 4
1 2 1
2 3 1
3 4 1
4 1 1

输出

0 1 2 1
1 0 1 2
2 1 0 1
1 2 1 0

提示

数据范围:1<=n<=1000,m<=100000,1<=w<=10^6。

可能有重边和自环