Después de despertarse en una habitación oscura, verá una cuadrícula rectangular de luces con los interruptores correspondientes. Decide utilizar un sistema de coordenadas con la luz inferior izquierda representando (1,1) y las coordenadas aumentando a medida que avanza (dirección y) y hacia la derecha (dirección x). Las cuadrículas son idénticas en que al accionar el interruptor en (a, b) se alterna (se apaga y se enciende o se enciende y apaga) la luz en (a, b), así como las luces en la misma columna o misma fila que ( a, b).
Su entrada será una cuadrícula rectangular de dos caracteres distintos que representan encendido y apagado (uso 1 y 0, respectivamente). Además, una parte de la entrada será una serie de al menos un par de coordenadas (con el formato y la separación que desee) que representarán los interruptores que usted activa.
La salida será la misma cuadrícula, con el "flip" aplicado en cada uno de los pares de coordenadas que se dieron como entrada. Puede elegir cómo formatear su entrada, aunque la salida debe ser una cuadrícula, no una matriz.
Muestras
Entrada de muestra 1
111111
111111
111111
111111
(3,2)
Salida de muestra 1
110111
110111
000000
110111
Entrada de muestra 2
01101
10100
00010
11111
10110
(1,1), (5,5)
Salida de muestra 2
00010
00101
10011
01110
01000
Entrada de muestra 3
1
(1,1)
Salida de muestra 3
0
Entrada de muestra 4
00000
11111
00000
11111
(2,3), (2,3)
Salida de muestra 4
00000
11111
00000
11111
Este es el código de golf. Aplican reglas estándar. El código más corto en bytes gana.
<grid><RETURN><coordinate_x><RETURN><coordinate_y><RETURN>
?Respuestas:
CJam,
3736 bytesLa entrada debe tener primero la cuadrícula, utilizando dos caracteres no NULL que solo difieran en el último bit (así
0
y1
trabajo), seguidos de una lista de pares de coordenadas al estilo CJam.Pruébalo aquí.
fuente
Dyalog APL, 20 bytes
Esta es una función diádica que toma la cuadrícula inicial a la derecha y la lista de coordenadas a la izquierda.
Para ingresar un solo par de coordenadas, use, por ejemplo,
(⊂2 3)
como argumento izquierdo.Pruébalo aquí .
fuente
MATL , 39 bytes
La entrada tiene la siguiente forma (el ejemplo corresponde a la entrada de muestra 2 en el desafío):
La primera entrada es una matriz que define la cuadrícula de
0
y1
.;
es el separador de fila. La segunda entrada es una matriz de pares de coordenadas, donde cada columna es un par.Ejemplo
Explicación
fuente
Ruby 114 bytes
Toma como entrada:
g
, una matriz de matrices que representan la cuadrícula inicial.o
, una matriz de puntos, cada punto es una matriz con dos elementos, como[x, y]
.fuente