40 lines
1000 B
Python
40 lines
1000 B
Python
|
|
m = [
|
|
[131, 673, 234, 103, 18],
|
|
[201, 96, 342, 965, 150],
|
|
[630, 803, 746, 422, 111],
|
|
[537, 699, 497, 121, 956],
|
|
[805, 732, 524, 37, 331]
|
|
]
|
|
|
|
def getm(file):
|
|
matrix = []
|
|
for line in open(file, 'r'):
|
|
matrix.append(list(map(lambda x: int(x), line.split(','))))
|
|
return matrix
|
|
|
|
def calc_short(short, nl):
|
|
for i in range(len(nl)):
|
|
nl[i] += min(short[i], short[i + 1])
|
|
return nl
|
|
|
|
def short_lu(matrix):
|
|
short = [0]
|
|
for x in range(len(matrix)):
|
|
nl = []
|
|
for i in range(x + 1):
|
|
nl.append(matrix[x - i][i])
|
|
short = calc_short(short[:1] + short + short[-1:], nl)
|
|
return short
|
|
|
|
def short_rd(matrix, short):
|
|
for x in range(len(matrix), (len(matrix) - 1) * 2 + 1):
|
|
nl = []
|
|
for i in range(x - len(matrix) + 1, len(matrix)):
|
|
nl.append(matrix[x - i][i])
|
|
short = calc_short(short, nl)
|
|
return short[0]
|
|
|
|
m = getm('../resource/matrix.txt')
|
|
print(short_rd(m, short_lu(m)))
|