lamps: '1' — фонарь горит, '0' — не горит.
Смотритель может сделать **не больше одного обмена** внутри выбранного участка аллеи:
1. погасить целиком сплошной блок горящих фонарей, у которого с обеих сторон стоят негорящие;
2. затем зажечь целиком сплошной блок негорящих фонарей, у которого с обеих сторон стоят горящие.
Участок задаётся парой [l, r] — фонари с l по r включительно. Внутри участка смотритель видит только его фонари, а за его краями мысленно ставит по горящему фонарю (эти воображаемые фонари в ответ не входят). Обмен меняет только фонари внутри участка.
Для каждого участка из windows найдите наибольшее возможное число горящих фонарей **во всём ряду** после лучшего обмена (или без обмена). Участки независимы: каждый раз начинаем с исходной строки. Верните ответы списком в том же порядке.lamps="0110100", windows=[[0, 6], [3, 6], [1, 2]] → [6, 6, 3]
Всего горит 3 лампы. Окно [0, 6]: гасим блок 1 на позиции 4 — тёмные участки длиной 1 и 2 сливаются в один, включаем все 4 лампы, итого 3 − 1 + 4 = 6. Окно [3, 6] = "0100": тот же обмен, тоже 6. Окно [1, 2] = "11": тёмных участков нет, обмен невозможен, остаётся 3.
lamps="1010", windows=[[0, 3], [0, 2]] → [4, 2]
В окне [0, 3] участок "1010": гасим лампу 2 (она между тёмными лампами 1 и 3) и зажигаем 1–3, итого 4. В окне [0, 2] = "101" лампа 2 лежит на краю окна — за краем считаем, что всё горит, поэтому она не окружена тёмными, и ответ 2.
lamps="0110100", windows=[[0, 6], [3, 6], [1, 2]]
[6, 6, 3]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 45 тестов на сервере, включая скрытые.