Решение: Максимальный и минимальный путь
Квадратное поле имеет размер $N \times N$, где $1 < N < 30$. В каждой клетке находится монета достоинством от 1 до 100. Робот начинает движение из левой верхней клетки и может перемещаться только вправо или вниз. Между соседними клетками могут находиться стены, через которые робот пройти не может. В клетках, ограниченных стенами справа и снизу, движение заканчивается. По данным из приложенного файла определите максимальную и минимальную суммы монет, которые робот может собрать на различных маршрутах.
Решение по шагам
4 шагаСчитаем, что значение клетки входит в сумму маршрута, в том числе для начальной и конечной клеток.
Для каждой клетки заполняем две динамические таблицы: одну для максимальной, другую для минимальной суммы от начальной клетки до данной клетки. Переход разрешён только по отсутствующим стенам.
Если в клетку можно прийти слева или сверху, для максимальной таблицы берём максимум из доступных предшественников, а для минимальной — минимум. К полученному значению прибавляем монету текущей клетки.
Определяем все клетки, у которых справа и снизу стоят стены. Среди значений максимальной таблицы в этих клетках выбираем наибольшее, а среди значений минимальной таблицы — наименьшее.
Максимальная и минимальная суммы определяются по данным приложенного файла.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывать монету в начальной клетке.
Не учитывать монету в конечной клетке.
Разрешать переход через внутреннюю стену.
Рассматривать только правую нижнюю клетку как конечную.
Для минимальной суммы выбирать локально меньший номинал монеты вместо меньшей накопленной суммы.