Ctrl K

Медленный и скоростной пути

Сложная
Между станциями 0, 1, …, n идут два параллельных пути: медленный и скоростной. Перегон от станции i до станции i + 1 стоит slow[i] по медленному пути и fast[i] по скоростному (нумерация массивов с нуля). Вы стартуете на станции 0 на медленном пути. На любой станции можно перейти с медленного пути на скоростной за switch_fee (платить при каждом таком переходе) и бесплатно вернуться со скоростного на медленный. Ехать дальше по тому же пути ничего не стоит сверх цены перегонов. Верните массив длины n, где i-й элемент — минимальная стоимость добраться до станции i + 1, по любому из путей.
Пример 1
slow=[4, 9, 9, 2], fast=[6, 1, 1, 8], switch_fee=5 → [4, 10, 11, 13]

До станции 1 дешевле медленный путь (4). До станций 2 и 3 выгодно на станции 1 перейти на скоростной: 4 + 5 + 1 = 10, затем 10 + 1 = 11. До станции 4 — снова бесплатно на медленный: 11 + 2 = 13.

Пример 2
slow=[10, 10], fast=[2, 3], switch_fee=4 → [6, 9]

Сразу переходим на скоростной: 4 + 2 = 6, затем 6 + 3 = 9.

Пример 3
slow=[1, 1, 1], fast=[1, 1, 1], switch_fee=3 → [1, 2, 3]
Ограничения
  • 1 ≤ n = len(slow) = len(fast) ≤ 10⁵
  • 1 ≤ slow[i], fast[i] ≤ 10⁵
  • 1 ≤ switch_fee ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВода между стенами СложнаяСамый большой горящий блок СложнаяПрибыль за две сделки СложнаяВсе способы расставить пробелы СложнаяПереход через пещеру Сложная
загружаем Python…
Вход
slow=[4, 9, 9, 2], fast=[6, 1, 1, 8], switch_fee=5
Ожидается
[4, 10, 11, 13]

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