Ctrl K

Зажечь все лампы окном

Сложная
Гирлянда из ламп описана массивом bits: 1 — лампа горит, 0 — погасла. Пульт умеет одно: выбрать width **подряд идущих** ламп и переключить каждую из них (горящая гаснет, погасшая загорается). Верните наименьшее число нажатий, после которых гореть будут все лампы, или -1, если это невозможно.
Пример 1
bits=[0, 0, 1, 0, 0, 1], width=3 → 2

Переключаем окно 0–2: [1, 1, 0, 0, 0, 1], затем окно 2–4: [1, 1, 1, 1, 1, 1].

Пример 2
bits=[1, 0, 1], width=2 → -1

Ноль на позиции 1 можно убрать только окном 1–2, но тогда гаснет последняя лампа, а окна правее нет.

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

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