complete 11403.py
This commit is contained in:
28
storage/zeta/py/completed/11403.py
Normal file
28
storage/zeta/py/completed/11403.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
input = sys.stdin.readline
|
||||||
|
write = sys.stdout.write
|
||||||
|
|
||||||
|
THRESHOLD = 10**9
|
||||||
|
|
||||||
|
def floyd_warshall(n: int, adj: list[list[int]]):
|
||||||
|
ds = []
|
||||||
|
ds.append(adj)
|
||||||
|
for k in range(n):
|
||||||
|
mat = [[0] * n for _ in range(n)]
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
if ds[-1][i][k] >= THRESHOLD or ds[-1][k][j] >= THRESHOLD:
|
||||||
|
mat[i][j] = ds[-1][i][j]
|
||||||
|
else:
|
||||||
|
mat[i][j] = min(ds[-1][i][j], ds[-1][i][k] + ds[-1][k][j])
|
||||||
|
ds.append(mat)
|
||||||
|
return ds[-1]
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
n = int(input())
|
||||||
|
adj = [list(map(lambda x: THRESHOLD if int(x) == 0 else int(x), input().split())) for _ in range(n)]
|
||||||
|
result = floyd_warshall(n, adj)
|
||||||
|
for row in result:
|
||||||
|
write(' '.join(map(lambda x: '0' if x >= THRESHOLD else '1', row)) + '\n')
|
||||||
|
|
||||||
Reference in New Issue
Block a user