- 21, Oct 2024
- #1
Вызов
Игра Зажги! — это простая игра-головоломка, цель которой — осветить каждую клетку н-к-н массив с лампочками. Однако на пути есть препятствия, которые будут препятствовать распространению света, и ни одна лампочка не может быть расположена так, чтобы на нее светил свет другой лампочки. Каждая лампочка излучает свет только в горизонтальный и вертикальный направления.
Вам необходимо написать программу, которая принимает массив из 5 чисел. Ваша программа должна преобразовать каждое число в 5-битное двоичное число, которое будет определять, в каких местах массива находятся блоки. Если есть 1, то на месте есть блок, а если есть 0, то блока нет. Каждое число, преобразованное в двоичный формат, определяет строку, например:
[a,b,c,d,e]
[16, 8, 2, 0, 8]
Где B = блоки, блокирующие свет.
Ваша программа должна взять этот массив, найти решения (места, где нужно поставить свет) и вернуть его в виде массива из 5 чисел.
Пример:
Вход: [16, 8, 2, 0, 8]
Что переводится как [10000, 01000, 00010, 00000, 01000]
Делаем массив:
L ~ ~ ~ B
~ L B ~ B
~ B ~ L B
~ B B ~ B
B L ~ ~ B
Решение для этого массива
. . . . B
. . B . B
. B . . B
. B B . B
B . . . B
~ = Свет
L = лампочка [00001, 00101, 01001, 01101, 10001]
Что дает двоичный массив огней [1,5,9,13,17]
И переводится обратно в . . B . B
. . B B .
. . B . B
. . B B .
. . B . B
Выход:
- Правила
- Две лампочки не могут находиться в одном ряду или столбце, если между ними нет блока.
- Свет лампочки может распространяться только горизонтально и вертикально и остановится, если на пути окажется преграда.
[5,6,5,6,5] -> [00101, 00110, 00101, 00110, 00101] ->
and output in the same form - Ваша программа должна принимать массив
- Если решение массива невозможно, ваша программа не должна выдавать выходные данные или иметь состояние «Нет выходных данных».
Это соревнование [код-гольф], победителем является наименьшая сумма в байтах!