30 lines
521 B
Python

def count(a, i, j):
if j == len(a[0])-1:
return [a[i][j], a[i][j]]
M, m = count(a, i, j+1)
res1, res2 = [M, m], [M, m]
if i > 0:
res1 = count(a, i-1, j+1)
if i < len(a)-1:
res2 = count(a, i+1, j+1)
return a[i][j] + max(M, res1[0], res2[0]), a[i][j] + min(m, res1[1], res2[1])
a = [[int(i) for i in row.split(';')] for row in open('dat/18-0.csv', 'r')]
M, m = 0, float('inf')
for i in range(len(a)):
res = count(a, i, 0)
M = max(M, res[0])
m = min(m, res[1])
print(M, m)
# 785 176