Ctrl K

Платная дорога в две полосы

Средняя
Водитель едет по двухполосной трассе длиной n километров. Массивы first_lane и second_lane описывают полосы: если i-й километр проехать по первой полосе, баланс водителя меняется на first_lane[i], по второй — на second_lane[i]. Положительное число — это бонус, отрицательное — плата за проезд. Водитель может въехать на трассу в начале любого километра и съехать после любого, но проехать нужно хотя бы один километр подряд. Въезд всегда на первую полосу, а за всю поездку разрешено перестроиться не более двух раз (перестроение — переход с одной полосы на другую). Перестраиваться можно между километрами, в том числе сразу после въезда и прямо перед съездом. Верните наибольший итоговый баланс поездки.
Пример 1
first_lane=[2, -6, -1, 4], second_lane=[-3, 5, 3, -2] → 14

Первый километр по первой полосе (+2), затем перестроиться на вторую на два километра (+5 и +3) и вернуться на первую на последний километр (+4): всего 14.

Пример 2
first_lane=[-4, -1], second_lane=[-2, -7] → -1

Все километры убыточны, но проехать хотя бы один нужно. Выгоднее всего — только второй километр по первой полосе: −1.

Пример 3
first_lane=[1, 1, 1], second_lane=[5, -9, 5] → 7

Собрать обе пятёрки и обойти −9 нельзя: понадобилось бы три перестроения. Лучшее — 5 + 1 + 1 = 7 (сразу на вторую полосу, потом на первую) или 1 + 1 + 5 = 7.

Ограничения
  • 1 ≤ first_lane.length = second_lane.length ≤ 10⁵
  • -10⁹ ≤ first_lane[i], second_lane[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяСамая прибыльная серия дней СредняяДобраться до последней клетки СредняяМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол Средняя
загружаем Python…
Вход
first_lane=[2, -6, -1, 4], second_lane=[-3, 5, 3, -2]
Ожидается
14

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