Ctrl K

Восемь фонарей через много ночей

Средняя
Вдоль аллеи стоят 8 фонарей. Массив lamps описывает их сегодня: lamps[i] = 1, если фонарь i горит, и 0, если нет. Каждую ночь все фонари одновременно меняют состояние по правилу: - если у фонаря два соседа и они оба горят или оба не горят, он загорается; - иначе он гаснет. У крайних фонарей сосед только один, поэтому начиная с первой ночи они всегда погашены. Верните состояние фонарей через nights ночей.
Пример 1
lamps=[1, 0, 0, 1, 1, 1, 0, 1], nights=1 → [0, 0, 0, 0, 1, 0, 1, 0]

Крайние фонари гаснут. Фонарь 1: соседи 1 и 0 разные — гаснет; фонарь 2: соседи 0 и 1 — гаснет; фонарь 4: соседи 1 и 1 — горит; и так далее.

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

Миллиард ночей честно не прожить, но после первой ночи состояния начинают повторяться по кругу.

Ограничения
  • len(lamps) = 8
  • lamps[i] — 0 или 1
  • 1 ≤ nights ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазрез на равные по XOR половины СредняяМеньше всего прямых через точки СредняяПотерянный билет ЛёгкаяЦепочки с квадратными суммами СложнаяВертикальная ось симметрии Средняя
загружаем Python…
Вход
lamps=[1, 0, 0, 1, 1, 1, 0, 1], nights=1
Ожидается
[0, 0, 0, 0, 1, 0, 1, 0]

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