Ctrl K

Яркость в каждой тройке

Средняя
Вдоль улицы в ряд стоят фонари, levels[i] — яркость i-го из них. Улица считается освещённой, если среди **любых трёх фонарей подряд** хотя бы один светит с яркостью не меньше need. За одну операцию можно выбрать любой фонарь и увеличить его яркость на 1. Уменьшать яркость нельзя. Верните наименьшее число операций, после которых улица станет освещённой. Заметьте: если условие выполнено для каждой тройки подряд, оно выполнено и для любого более длинного отрезка.
Пример 1
levels=[1, 4, 0, 2, 0, 1], need=3 → 1

Тройки [1, 4, 0] и [4, 0, 2] уже держит фонарь яркостью 4. Тройки [0, 2, 0] и [2, 0, 1] закрывает один фонарь с индексом 3: поднимаем его с 2 до 3 за одну операцию.

Пример 2
levels=[0, 0, 0, 0, 0, 0, 0], need=2 → 4

Достаточно сделать яркими фонари с индексами 2 и 5: каждая тройка подряд задевает один из них. Это 2 + 2 = 4 операции.

Пример 3
levels=[7, 1, 1], need=5 → 0

Единственная тройка уже содержит фонарь яркостью 7, ничего менять не нужно.

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

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