18

Максимальная и минимальная сумма

ЕГЭ · Информатика · Задание 18 · Динамическое программирование
ВысокаяФИПИF26F05Короткий ответ≈ 15 минут

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

Условие как в банке ФИПИ — открыть и сверить
Впишите правильный ответ.

Задание выполняется с использованием прилагаемых
файлов.

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

Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота.

В «угловых» клетках поля – тех, которые справа и снизу ограничены стенами, Робот не может продолжать движение, поэтому накопленная сумма считается итоговой. Таких конечных клеток
на поле может быть несколько, включая правую нижнюю клетку поля. При разных запусках итоговые накопленные суммы могут различаться.

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

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

Пример входных данных

1

8

8

4

10

1

1

3

1

3

12

2

2

3

5

6



Ваш ответ

Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.

!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Для каждой клетки храните максимальную и минимальную сумму, которую можно набрать при попадании в эту клетку.

2Наводящая — какие числа считатьуровень 2 из 3

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

3Прямая — фактически решениеуровень 3 из 3

Для каждой клетки $(i,j)$ вычисляйте $\mathrm{maxSum}[i,j] = a[i,j] + \max(\mathrm{maxSum}[i-1,j],\mathrm{maxSum}[i,j-1])$ и аналогично минимум. В итоговый список включите значения в каждой клетке, ограниченной стенами справа и снизу.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 18 ЕГЭ, информатика

Задача из темы «Динамическое программирование»: в ней 72 задачи с ответом и разбором по шагам. В 18-м номере бланка — 49 задач.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.