백준 11404 - 플로이드 (파이썬)
Updated:
Answer
from sys import stdin
input = stdin.readline
INF = int(1e9)
def floyd_warshall():
for m in range(1, n + 1):
for s in range(1, n + 1):
for e in range(1, n + 1):
if s == e:
dp[s][e] = 0
else:
dp[s][e] = min(dp[s][e], dp[s][m] + dp[m][e])
n = int(input())
m = int(input())
dp = [[INF] * (n + 1) for _ in range(n + 1)]
for _ in range(m):
a, b, c = map(int, input().split())
dp[a][b] = min(dp[a][b], c)
floyd_warshall()
for i in dp[1:]:
for j in i[1:]:
if j == INF:
print(0, end = ' ')
else:
print(j, end = ' ')
print()