Pagini recente » Cod sursa (job #2687090) | Cod sursa (job #2956165) | Cod sursa (job #69564) | Cod sursa (job #2576883) | Cod sursa (job #2532869)
import math
def in_gen(fname):
with open(fname, 'rt') as fin:
for line in fin:
for val in line.split():
yield int(val)
def solve(n, a):
for k in range(1, n + 1):
for i in range(1, n + 1):
for j in range(1, n + 1):
if a[i][k] + a[k][j] < a[i][j]:
a[i][j] = a[i][k] + a[k][j]
if __name__ == "__main__":
it = in_gen('grader_test8.in')
n = next(it)
a = [[math.inf for _ in range(n + 1)] for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, n + 1):
a[i][j] = next(it)
if a[i][j] == 0 and i != j:
a[i][j] = math.inf
solve(n, a)
with open('royfloyd.out', 'wt') as fout:
for i in range(1, n + 1):
for j in range(1, n + 1):
if a[i][j] == math.inf:
a[i][j] = 0
fout.write(f'{a[i][j]} ')
fout.write(f'\n')