Проснувшись в темной комнате, вы увидите прямоугольную сетку огней с соответствующими переключателями. Вы решаете использовать систему координат с нижним левым источником света, представляющим (1,1), и координаты увеличиваются по мере того, как вы идете вверх (направление y) и вправо (направление x). Сетки идентичны в том, что при переключении переключателя в (a, b) включается (включается или выключается) свет в (a, b), а также огни в том же столбце или той же строке, что и ( а, б).
Ваш ввод будет прямоугольной сеткой из двух разных символов, представляющих включение и выключение (я использую 1 и 0 соответственно). Кроме того, часть входных данных будет представлять собой последовательность по меньшей мере из одной пары координат (с любым форматом и разделением по вашему желанию), которая будет представлять переключатели, которые вы переключаете.
Выходными данными будет та же самая сетка с «переворотом», примененным к каждой из пар координат, которые были заданы в качестве входных данных. Вы можете выбрать, как отформатировать ввод, хотя вывод должен быть сеткой, а не массивом.
образцы
Пример ввода 1
111111
111111
111111
111111
(3,2)
Пример вывода 1
110111
110111
000000
110111
Пример ввода 2
01101
10100
00010
11111
10110
(1,1), (5,5)
Пример вывода 2
00010
00101
10011
01110
01000
Пример ввода 3
1
(1,1)
Пример вывода 3
0
Пример ввода 4
00000
11111
00000
11111
(2,3), (2,3)
Пример вывода 4
00000
11111
00000
11111
Это код гольф. Стандартные правила применяются. Самый короткий код в байтах побеждает.
<grid><RETURN><coordinate_x><RETURN><coordinate_y><RETURN>
?Ответы:
CJam,
3736 байтСначала вход должен иметь сетку, используя любые два отличных от NULL символа, которые отличаются только последним битом (так
0
и1
работает), а затем список пар координат в стиле CJam.Проверьте это здесь.
источник
Dyalog APL, 20 байтов
Это двоичная функция, которая берет начальную сетку справа и список координат слева.
Чтобы ввести одну пару координат, используйте, например,
(⊂2 3)
в качестве левого аргумента.Попробуй это здесь .
источник
MATL , 39 байт
Вход имеет следующую форму (пример соответствует образцу ввода 2 в задании):
Первый вход - это матрица, определяющая сетку
0
и1
.;
это разделитель строк. Второй вход представляет собой матрицу координатных пар, где каждый столбец является парой.пример
объяснение
источник
Ruby 114 байт
Принимает в качестве входных данных:
g
, массив массивов, представляющих начальную сетку.o
, массив точек, каждая точка является массивом с двумя элементами, как[x, y]
.источник