Текстовые решения некоторых заданий

1. Демоверсия 2021

1.1. Решение

Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.
Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.
Пример входных данных:

1

8

8

4

10

1

1

3

1

3

12

2

2

3

5

6

Для указанных входных данных ответом должна быть пара чисел.

41

22

Задумка решения в следующем. Возьмем таблицу из примера и перезаполним верхнюю строку и левый столбец как сумму чисел которую мы наберем пока доберемся до текущей ячейки, включительно.

В каждую из оставшихся ячеек мы можем попасть как сверху, так и слева. Будем выбирать наибольшую из этих ячеек для перехода в текущую ячейку.

Т.е. в общем виде решение выглядит следующим образом. К числу из соответствующей ячейки добавляем то, что мы уже набрали и растягиваем.

Далее к соответствующей ячейки из изначальной таблицы добавляем максимум между тем, что набрали слева и сверху.

Ну и для нахождения минимума, можно либо всё это повторить с функцией МИН вместо МАКС, либо с помощью замены заменить функцию во всех ячейках с МАКС на МИН.

Вводим, что хотим МАКС заменить на МИН и нажимаем Заменить все.

Ну и аналогичные действия проделываем с основной задачей.

Ответ: 1204; 502.