Pagini recente » Cod sursa (job #1081410) | Cod sursa (job #34386) | Cod sursa (job #3139702) | Cod sursa (job #945736) | Cod sursa (job #2539124)
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('royfloyd.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('{} '.format(a[i][j]))
fout.write('\n')