Ctrl K

Успеть до порчи

Средняя
Ягодный куст плодоносит n дней подряд. В день i (нумерация с нуля) с него собирают harvest[i] ягод, и они остаются съедобными shelf_life[i] дней: в день i + shelf_life[i] они уже испорчены. Если в какой-то день ягод не было, то harvest[i] = 0 и shelf_life[i] = 0. Вы съедаете не больше одной ягоды в день, причём есть можно и после того, как куст перестал плодоносить. Верните наибольшее число ягод, которое удастся съесть.
Пример 1
harvest=[2, 3], shelf_life=[5, 1] → 3

Ягоды первого сбора годятся в дни 0–4, второго — только в день 1. В день 0 съедаем ягоду из первого сбора, в день 1 — из второго (остальные две из него пропадут), в день 2 — последнюю из первого. Итого 3.

Пример 2
harvest=[1, 0, 0, 2], shelf_life=[1, 0, 0, 4] → 3

Единственная ягода дня 0 съедается сразу. В дни 1 и 2 есть нечего. Две ягоды дня 3 годятся до дня 6, их съедаем в дни 3 и 4.

Пример 3
harvest=[4, 1, 1], shelf_life=[2, 4, 1] → 4
Ограничения
  • 1 ≤ n ≤ 2 · 10⁴
  • len(harvest) = len(shelf_life) = n
  • 0 ≤ harvest[i], shelf_life[i] ≤ 2 · 10⁴
  • shelf_life[i] = 0 тогда и только тогда, когда harvest[i] = 0
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтудии для записи СредняяЗадания с перерывом на остывание СредняяСерии подряд идущих чисел СредняяМетки вразнобой СредняяСращивание верёвок Средняя
загружаем Python…
Вход
harvest=[2, 3], shelf_life=[5, 1]
Ожидается
3

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