Si no sabes qué es una reina en el ajedrez, no importa mucho; es solo un nombre :)
Tu entrada será un cuadrado de ancho y alto arbitrario que contiene cierta cantidad de reinas. La placa de entrada se verá así (esta placa tiene un ancho y una altura de 8):
...Q....
......Q.
..Q.....
.......Q
.Q......
....Q...
Q.......
.....Q..
Hay 8 reinas en este tablero. Si hubiera, digamos, 7, o 1, o 10 aquí, el tablero no sería válido.
Aquí usamos un .para un espacio vacío, y unQ para una reina. Alternativamente, puede usar cualquier carácter que no sea un espacio en blanco que desee en su lugar.
Esta entrada puede verificarse como válida, y debe imprimir (o devolver) un valor verdadero (si no es válido, debe imprimir (o devolver) un valor falso). Es válido porque ninguna reina está en la misma fila, columna, diagonal o anti-diagonal que otra. .
Ejemplos (no mostrar cosas entre paréntesis):
...Q....
......Q.
..Q.....
.......Q
.Q......
....Q...
Q.......
.....Q..
1
...Q.
Q....
.Q...
....Q
..Q..
0
Q.
Q.
0
..Q
...
.Q.
0 (this is 0 because there are only 2 queens on a 3x3 board)
..Q.
Q...
...Q
.Q..
1
Q
1 (this is valid, because the board is only 1x1, so there's no queen that can take another)
Permítanme enfatizar que una entrada solo es válida, si ninguna reina está en la misma fila, columna, diagonal o anti-diagonal que otra .
Reglas
- Nunca recibirá una entrada vacía
- Si la entrada contiene menos reinas que la raíz cuadrada del área del tablero, no es válida.
- Tenga en cuenta que no hay soluciones válidas para un tablero de 2x2 o 3x3, pero hay una solución para cualquier tablero cuadrado de otro tamaño , donde el ancho y la altura es un número natural.
- La entrada puede estar en cualquier formato razonable, según las reglas de PPCG
- La entrada siempre será un cuadrado
- Usé 1 y 0 en los ejemplos, pero puede usar cualquier valor verdadero o falso (como
Why yes, sir, that is indeed the caseyWhy no, sir, that is not the case)
Como se trata de código de golf , ¡el código más corto gana!
{(x, y, v)}con vde [., Q]ser un formato de entrada válida?
(0, 0, Q), (0, 1, .), (1, 0, Q), (1, 1, .)sería el tercer caso de prueba.