Квадрат разлинован на N × M клеток (1 < N < M < 20). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке пересечь границы Робот разрушается.
В любой клетке поля может быть стена (стены обозначены значениями больше 100, но меньше 500) или яма (ямы обозначены значениями меньше или равны 0, но больше -400). Робот может двигаться только вниз или вправо. При попытке зайти на клетку со стеной Робот разрушается. При попытке зайти на клетку с ямой Робот застревает в ней и не может двигаться дальше.
Исходные данные записаны в файле в виде электронной таблицы прямоугольной формы. Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю, не разрушившись и не застряв в яме. Известно, что такой путь существует. В ответе укажите два числа через пробел – сначала максимальную сумму, затем минимальную.
Сначала найдем стены и ямы, а так же клетки, в которые никак нельзя попасть. Создаем ниже исходного поля, новое такого же размера (ячейки ) и в левой верхней ячейке этого поля записываем формулу.
=ЕСЛИ(ИЛИ(A1>100;A1<1;И(A13=-1;B12=-1));-1;0)
По левому столбцу и верхней строке придется пройти вручную и поставить там -1, если в них нельзя попасть.
Создаем еще одно поле такого же размера (ячейки ). Теперь в каждую ячейку этого поля запишем формулу (пример для левой верхней ячейки):
=ЕСЛИ(B13=0;A1+МАКС(A24;B23);0)
Теперь в правой нижней ячейке записана максимальная сумма, которую может собрать робот. Для того чтобы найти минимальную сумму необходимо заменить записать формулу.
=ЕСЛИ(B13=0;A1+МИН(A24;B23);100000)