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 caseeWhy no, sir, that is not the case)
Como se trata de código-golfe , o código mais curto vence!
{(x, y, v)}com vem [., Q]ser um formato de entrada válido?
(0, 0, Q), (0, 1, .), (1, 0, Q), (1, 1, .)seria o terceiro caso de teste.