Самый короткий код для прохождения всех возможностей выигрывает
Было создано много игр на основе сетки, которые начинаются с включенной сетки огней. Нажатие любого из источников света приводит к переключению этого источника света и четырех расположенных рядом с ним источников света. Когда источник света переключается, он выключается или включается, в зависимости от того, был ли он включен или выключен изначально. Цель состоит в том, чтобы поразить огни в последовательности, которая приводит к выключению всех огней в конце.
«Х» обозначает включенные огни. «О» обозначает выключенные огни. «P» представляет тот квадрат, который нажат.
XOO XOO XOX XOX XXX
XOX XOP -> XXO -> OPO -> XOX
OOX OOX POO XXO XOO
Intial Grid Press 1 Press 2 Press 3 Ending Grid
Ввод может быть взят непосредственно из файла, переданного в качестве аргумента, или в качестве стандартного ввода. Первая строка ввода будет содержать x (1 <= x <= 20), размер сетки источников света, что означает x по x . Вторая строка будет содержать y (0 <= y <= ( x * 3) 2 ), количество лампочек, которые изначально загорелись. Следующие y строк содержат координаты подсвеченных огней на сетке в формате «столбец строки». Фары, которые уже включены (ранее были включены), должны быть снова выключены. Следующая строка будет содержать z , количество нажатых лампочек. Финальная г Строки содержат координаты нажатых источников света в порядке их нажатия в формате «столбец строки».
Нет ввода будет неверным. Все числа будут в заданных границах сетки.
Выходной сигнал будет окончательной сеткой после переключения всех источников света. Это должна быть n по n сетка. Для каждой области, которая имеет свет, должен использоваться заглавный символ «X». Для каждой области, которая имеет выключенный свет, следует использовать заглавный символ «O».
Огни, на которые влияют, которые находятся вне сетки, должны игнорироваться. Переключение света на краю сетки должно влиять только на огни, которые находятся на самой сетке.
Тестовые случаи
вход
4
5
2 3
2 4
3 1
3 4
4 3
7
3 3
4 4
3 4
4 2
4 1
2 2
3 2
Выход
OXOO
XOXO
XOXO
OXOO
вход
1
3
1 1
1 1
1 1
2
1 1
1 1
Выход
X
источник
exec
это ключевое слово, а не встроенная функция (в Python 2.x), поэтому нет необходимости в дополнительных скобках.Ruby 1.9, 167 символов
Редактирование:
z[u]*=-1
вместоz[u]=-z[u]
, удалите неиспользуемую переменнуюисточник
Perl, 139 символов
Объяснение:
источник
APL (71)
источник