Ctrl K

Курьер с двумя щитами

Средняя
Курьер идёт по полю grid размером m × n из левой верхней клетки в правую нижнюю, каждым шагом сдвигаясь вправо или вниз. Начальная и конечная клетки тоже входят в путь. В каждой клетке записано число. Если оно неотрицательно, курьер получает столько монет. Если отрицательно — в клетке поджидает грабитель и отнимает модуль этого числа. У курьера есть два щита: в любых двух клетках пути (или меньше) можно отменить грабёж, тогда клетка ничего не отнимает. Баланс курьера может уходить в минус. Верните наибольшую сумму, с которой курьер может закончить путь.
Пример 1
grid=[[3, -5, 2], [-4, -6, 1], [2, -1, 4]] → 10

Путь 3 → -5 → 2 → 1 → 4 (вправо, вправо, вниз, вниз) со щитом на клетке -5 даёт 3 + 2 + 1 + 4 = 10.

Пример 2
grid=[[1, -2, 3, -4, 5]] → 9

Путь единственный. Щиты уходят на обе отрицательные клетки: 1 + 3 + 5 = 9.

Пример 3
grid=[[-3]] → 0

Щит отменяет потерю в единственной клетке, итог 0.

Ограничения
  • 1 ≤ m, n ≤ 500
  • -1000 ≤ grid[i][j] ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол СредняяСамый большой сплошной квадрат СредняяЛучшее место для пушки СредняяШаги до ближайшего нуля Средняя
загружаем Python…
Вход
grid=[[3, -5, 2], [-4, -6, 1], [2, -1, 4]]
Ожидается
10

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 75 тестов на сервере, включая скрытые.