Se você não sabe o que é uma rainha no xadrez, isso não importa muito; é apenas um nome :)
Sua entrada será um quadrado de largura e altura arbitrárias contendo alguma quantidade de rainhas. A placa de entrada ficará assim (esta placa possui largura e altura de 8):
...Q....
......Q.
..Q.....
.......Q
.Q......
....Q...
Q.......
.....Q..
Existem 8 rainhas neste fórum. Se houvesse, digamos, 7, 1 ou 10 aqui, o quadro não seria válido.
Aqui usamos a .
para um espaço vazio e umQ
para uma rainha. Como alternativa, você pode usar qualquer caractere que não seja de espaço em branco que desejar.
Essa entrada pode ser verificada como válida e você deve imprimir (ou retornar) um valor verdadeiro (se não for válido, deve imprimir (ou retornar) um valor falso). É válido porque nenhuma dama está na mesma linha, coluna, diagonal ou anti-diagonal que outra .
Exemplos (não exiba itens entre colchetes):
...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)
Deixe-me enfatizar que uma entrada é válida apenas se nenhuma rainha estiver na mesma linha, coluna, diagonal ou anti-diagonal que outra .
Regras
- Você nunca receberá uma entrada vazia
- Se a entrada contiver menos rainhas que a raiz quadrada da área da placa, ela não será válida.
- Observe que não há soluções válidas para uma placa 2x2 ou 3x3, mas existe uma solução para todos os outros tamanhos quadrados placas , em que a largura e a altura são um número natural.
- A entrada pode estar em qualquer formato razoável, de acordo com as regras do PPCG
- A entrada será sempre um quadrado
- Usei 1 e 0 nos exemplos, mas você pode usar valores de verdade ou falsidade (como
Why yes, sir, that is indeed the case
eWhy no, sir, that is not the case
)
Como se trata de código-golfe , o código mais curto vence!
{(x, y, v)}
com v
em [., Q]
ser um formato de entrada válido?
(0, 0, Q), (0, 1, .), (1, 0, Q), (1, 1, .)
seria o terceiro caso de teste.