Ctrl K

Погасить все лампы

Сложная
Панель — сетка ламп lamps размера m × n: 1 — лампа горит, 0 — не горит. Если нажать на лампу, переключаются она сама и её соседи по сторонам (сверху, снизу, слева и справа, если они есть): горевшие гаснут, погашенные загораются. Верните наименьшее число нажатий, после которых все лампы будут погашены, или -1, если так сделать нельзя.
Пример 1
lamps=[[1, 1, 0], [1, 0, 0]] → 1

Одно нажатие на лампу (0, 0) переключает её и соседей (0, 1) и (1, 0) — все три гаснут.

Пример 2
lamps=[[1, 0], [0, 0]] → 3

Чтобы погасить одну угловую лампу на панели 2 × 2, нужно нажать её и обе соседние — 3 нажатия.

Пример 3
lamps=[[0, 1, 0]] → 3
Ограничения
  • 1 ≤ m, n ≤ 4
  • все строки сетки одной длины
  • lamps[i][j] — 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКлючи и двери в лабиринте СложнаяСбалансированный набор строк СложнаяПоле, разрезанное чертами СредняяНаименьшее число ударов крестом СредняяСумма недоступного Средняя
загружаем Python…
Вход
lamps=[[1, 1, 0], [1, 0, 0]]
Ожидается
1

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