30 lines
671 B
Python
30 lines
671 B
Python
def count(a: list[list[int]], i: int, j: int) -> list[int]:
|
||
|
||
if i == len(a) or j == len(a[0]):
|
||
return None
|
||
|
||
if (a[i][j] > 100 and a[i][j] < 500) or (a[i][j] > -400 and a[i][j] < 0):
|
||
return None
|
||
|
||
r = count(a, i, j+1)
|
||
b = count(a, i+1, j)
|
||
|
||
c = a[i][j]
|
||
|
||
if r == None and b == None:
|
||
return [c, c]
|
||
if r == None:
|
||
return [c + b[0], c + b[1]]
|
||
if b == None:
|
||
return [c + r[0], c + r[1]]
|
||
|
||
return [c + max(r[0], b[0]), c + min(r[1], b[1])]
|
||
|
||
|
||
with open("dat/18-13.csv", 'r') as f:
|
||
a = [[int(i) for i in row.split(';')] for row in f.readlines()]
|
||
|
||
print(count(a, 0, 0))
|
||
|
||
# 1535 330 (не знаю как починить с минимумом)
|