https://www.acmicpc.net/problem/11404
Input)
5
14
1 2 2
1 3 3
1 4 1
1 5 10
2 4 2
3 4 1
3 5 1
4 5 3
3 5 10
3 1 8
1 4 2
5 1 7
3 4 2
5 2 4
Output)
0 2 3 1 4
12 0 15 2 5
8 5 0 1 1
10 7 13 0 3
7 4 10 6 0
# 10억 이내 범위에서 최대값
INF = int(1e9)
INF = int(-1e9)
# int범위 내 최대값
INF = int(2e9)
INF = int(1e9)
n = int(input())
m = int(input())
cost = [[INF]*(n+1) for _ in range(n+1)]
for _ in range(m):
a, b, c = [int(x) for x in input().split()]
if c < cost[a][b]:
cost[a][b] = c
for k in range(1,n+1):
for i in range(1,n+1):
for j in range(1,n+1):
if i == j:
cost[i][j] = 0
continue
if cost[i][k] == INF or cost[k][j]==INF:
continue
if cost[i][k]+cost[k][j] < cost[i][j]:
cost[i][j] = cost[i][k]+cost[k][j]
for i in range(1,n+1):
for j in range(1,n+1):
if cost[i][j] == INF:
print(0, end=" ")
else:
print(cost[i][j],end=" ")
print()