Ctrl K

Два комбайна сверху вниз

Сложная
Сад задан матрицей orchard из rows строк и cols столбцов: orchard[i][j] — сколько яблок можно собрать в клетке (i, j). В верхнем ряду стоят два комбайна: первый в левом углу (0, 0), второй в правом углу (0, cols - 1). За один ход каждый комбайн спускается на ряд ниже: из (i, j) в (i + 1, j - 1), (i + 1, j) или (i + 1, j + 1), не выходя за границы сада. Оба делают ходы одновременно, пока не дойдут до нижнего ряда. Комбайн собирает все яблоки в каждой клетке, через которую проходит, включая стартовую. Если оба комбайна оказались в одной клетке, её яблоки засчитываются один раз. Верните наибольшее общее число яблок, которое могут собрать два комбайна.
Пример 1
orchard=[[2, 0, 4], [1, 6, 0], [3, 0, 5]] → 21

Левый комбайн идёт 2 → 1 → 3, правый 4 → 6 → 5: 6 + 15 = 21. Если бы через клетку с 6 прошли оба, она засчиталась бы только один раз.

Пример 2
orchard=[[1, 1], [0, 9], [7, 0]] → 18

Во втором ряду девятку берёт правый комбайн, в третьем семёрку — левый: 1 + 1 + 9 + 7 = 18.

Ограничения
  • 2 ≤ rows, cols ≤ 70
  • rows = len(orchard), cols = len(orchard[i])
  • 0 ≤ orchard[i][j] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый большой горящий блок СложнаяПереход через пещеру СложнаяСамый длинный подъём по карте СложнаяНедели отдыха с перелётами СложнаяЯгодное поле туда и обратно Сложная
загружаем Python…
Вход
orchard=[[2, 0, 4], [1, 6, 0], [3, 0, 5]]
Ожидается
21

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