Ctrl K

Самое выгодное произведение на пути

Средняя
Дано поле board размером m × n, в каждой клетке записано целое число. Фишка стоит в левом верхнем углу и за один ход сдвигается на клетку вправо или вниз, пока не дойдёт до правого нижнего угла. Произведение пути — это произведение чисел во всех клетках, через которые прошла фишка, включая начальную и конечную. Найдите наибольшее неотрицательное произведение среди всех путей и верните его по модулю 10⁹ + 7. Если у всех путей произведение отрицательное, верните -1. Обратите внимание: максимум выбирается по настоящим значениям произведений, а остаток от деления берётся уже от найденного максимума.
Пример 1
board=[[2, -1, 3], [-2, 4, -1]] → 16

Путь 2 → -1 → 3 → -1 даёт 6, путь 2 → -1 → 4 → -1 — 8, а путь 2 → -2 → 4 → -1 — 16. Больше получить нельзя.

Пример 2
board=[[3, -2], [1, 2]] → 6

Есть только два пути: 3 · (-2) · 2 = -12 и 3 · 1 · 2 = 6. Ответ 6.

Пример 3
board=[[-1, 2], [3, 4]] → -1

Оба пути начинаются с -1, а дальше идут только положительные числа, поэтому любое произведение отрицательно: ответ -1.

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

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