Ctrl K

Сколько горел свет

Лёгкая
В коридоре висит лампа с датчиком движения. Когда датчик срабатывает в секунду t, лампа горит ровно hold секунд — с t по t + hold - 1 включительно. Если датчик срабатывает снова, пока лампа ещё горит, таймер начинается заново: теперь лампа погаснет через hold секунд после нового срабатывания. Дан неубывающий список triggers — секунды, в которые сработал датчик, — и число hold. Верните, сколько секунд в сумме горела лампа.
Пример 1
triggers=[2, 3, 10], hold=3 → 7

Срабатывание в 2 включает свет на секунды 2–4, но в 3 таймер перезапускается, и свет горит до 5 включительно: секунды 2–5. Потом секунды 10–12. Итого 4 + 3 = 7.

Пример 2
triggers=[0, 5], hold=5 → 10

Второе срабатывание приходится ровно на момент, когда свет гас бы: секунды 0–9, всего 10.

Пример 3
triggers=[4, 4], hold=2 → 2

Два срабатывания в одну секунду ничего не добавляют: свет горит секунды 4 и 5.

Ограничения
  • 1 ≤ len(triggers) ≤ 10⁴
  • 0 ≤ triggers[i] ≤ 10⁷
  • 0 ≤ hold ≤ 10⁷
  • triggers отсортирован по неубыванию
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПереложить в другой лоток ЛёгкаяЖурнал очков викторины ЛёгкаяЗеркало и негатив ЛёгкаяСтроки становятся столбцами ЛёгкаяПод ударом ладьи Лёгкая
загружаем Python…
Вход
triggers=[2, 3, 10], hold=3
Ожидается
7

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