Ctrl K

Окна с заданным числом тревог

Средняя
Датчик раз в минуту записывает в журнал log число 1, если в эту минуту сработала тревога, и 0, если нет. Окно — это непустой отрезок подряд идущих минут журнала. Посчитайте, сколько существует окон, в которых тревога сработала ровно alarms раз.
Пример 1
log=[0, 1, 0, 0, 1], alarms=1 → 9

Подходят отрезки, в которых ровно одна единица: с первой единицей — [0,1], [0,1,0], [0,1,0,0], [1], [1,0], [1,0,0], со второй — [0,0,1], [0,1], [1]. Всего 9.

Пример 2
log=[1, 1, 1], alarms=2 → 2

Ровно две тревоги дают только отрезки из первых двух и из последних двух минут.

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

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