Поиск самого дорогого пути
Есть код, который ищет самый дорогой путь от правого нижнего угла матрицы до левого верхнего.
y, x = map(int, input().split())
location = [list(map(int, input().split())) for i in range(y)]
cost = [[0] * x for i in range(y)]
road = [[""] * x for i in range(y)]
# -----------------------------
cost[0][0] = location[y-1][0]
# -----------------------------
for X in range(1, x):
cost[0][X] = cost[0][X - 1] + location[0][X]
road[0][X] = road[0][X - 1] + 'П'
for Y in range(1, y):
cost[Y][0] = cost[Y - 1][0] + location[Y][0]
road[Y][0] = road[Y - 1][0] + 'В'
for Y in range(1, y):
for X in range(1, x):
cost[Y][X] = max(cost[Y][X - 1], cost[Y - 1][X]) + location[Y][X]
if cost[Y][X - 1] > cost[Y - 1][X]:
road[Y][X] = road[Y][X - 1] + 'П'
else:
road[Y][X] = road[Y - 1][X] + 'В'
# -----------------------------
print(cost[-1][-1])
print(road[-1][-1])
Сначала задается количество строк и столбцов матрицы через пробел, потом заполняется матрица так же через пробел. Путь ищет адекватный но с подсчетом суммы есть некие проблемы, как решить?. Заранее простите за кривой код, учусь.