Твой ответ на задание неверный.
Для решения задания необходимо использовать динамическое программирование.
Каждый раз, когда Робот приходит в новую клетку, он должен выбирать из двух возможных путей - пойти вправо или вниз, тот путь, который принесёт ему больше денег. Для каждой клетки нужно вычислить, какая сумма денег будет наибольшей, если Робот пойдет по пути, начинающемуся из этой клетки. Это можно сделать, использовав следующую формулу:
max_sum(i,j) = max(max_sum(i-1, j), max_sum(i, j-1)) + sum(i,j)
где max_sum(i,j) - максимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j).
Так же нужно вычислить минимальную сумму, для этого формула будет выглядеть следующим образом:
min_sum(i,j) = min(min_sum(i-1, j), min_sum(i, j-1)) + sum(i,j)
где min_sum(i,j) - минимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j).
Искомые максимальную и минимальную суммы можно будет найти в клетках (N,N) на основании значений max_sum и min_sum.
Таким образом, ответ на задание для данного примера будет:
1360537
41
Оцени мой ответ, пожалуйста, лайком или дизлайком.
