2013-04-17 14:34:39 +08:00

44 lines
1009 B
Python

a = []
ff = open('matrix.txt.', 'r')
for i in ff.readlines():
tmp = i.split(',')
for j in xrange(len(tmp)):
tmp[j] = int(tmp[j])
a.append(tmp)
ff.close()
path = [[a[0][0], [a[0][0]]]]
n = len(a)
for k in xrange(1, n):
pathtmp = []
tmp = [a[k][0] + path[0][0], path[0][1][:]]
tmp[1].append(a[k][0])
pathtmp.append(tmp)
for i in xrange(1, k):
if path[i - 1][0] < path[i][0]:
flag = i - 1
else:
flag = i
tmp = [path[flag][0] + a[k - i][i], path[flag][1][:]]
tmp[1].append(a[k - i][i])
pathtmp.append(tmp)
tmp = [a[0][k] + path[k - 1][0], path[k - 1][1][:]]
tmp[1].append(a[0][k])
pathtmp.append(tmp)
path = pathtmp
for k in xrange(n, 2 * n - 1):
pathtmp = []
for i in xrange(2 * n - 1 - k):
if path[i][0] < path[i + 1][0]:
flag = i
else:
flag = i + 1
tmp = [path[flag][0] + a[n - 1 - i][k + i + 1 - n], path[flag][1][:]]
tmp[1].append(a[n - 1 - i][k + i + 1 - n])
pathtmp.append(tmp)
path = pathtmp
print path