Ctrl K

Самый богатый подъём

Сложная
Поле — квадрат из строк grid. Игрок стоит в правой нижней клетке S и хочет добраться до левой верхней клетки E. Каждая другая клетка — либо монеты (цифра от 1 до 9), либо скала X, на которую ступать нельзя. За один ход можно сдвинуться на клетку вверх, влево или по диагонали вверх-влево. Проходя по клетке с цифрой, игрок забирает столько монет, сколько на ней написано. Верните список из двух чисел: наибольшее число монет, которое можно собрать по пути от S до E, и количество маршрутов, которые дают именно это число, по модулю 10⁹ + 7. Если до E добраться нельзя, верните [0, 0].
Пример 1
grid=['E31', '2X4', '15S'] → [8, 2]

Больше всего, 8 монет, дают два маршрута: S → 5 → 1 → 2 → E и S → 4 → 1 → 3 → E.

Пример 2
grid=['E2', '2S'] → [2, 2]

Два маршрута через двойку дают по 2, а прыжок по диагонали — 0. Максимум 2, маршрутов два.

Пример 3
grid=['E9X', 'XXX', 'X1S'] → [0, 0]

Стена из X отрезает старт от финиша — ответ [0, 0].

Ограничения
  • 2 ≤ len(grid) = len(grid[i]) ≤ 100
  • grid[0][0] = 'E', правая нижняя клетка — 'S'
  • Остальные клетки — цифры от '1' до '9' или 'X'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый большой горящий блок СложнаяПереход через пещеру СложнаяСамый длинный подъём по карте СложнаяНедели отдыха с перелётами СложнаяЯгодное поле туда и обратно Сложная
загружаем Python…
Вход
grid=['E31', '2X4', '15S']
Ожидается
[8, 2]

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