Este desafio é inspirado por este aplicativo .
Esta é uma versão muito mais fácil deste desafio . Esse desafio é o código-golfe , enquanto o outro é o código mais rápido .
Você receberá uma grade quadrada de entrada, das dimensões 6 por 6, que é dividida em 6 áreas, onde as células de cada área têm um identificador exclusivo (usarei letras minúsculas de af no texto aqui, mas você pode escolher o que quiser, por exemplo, números inteiros 1 a 6 ).
A entrada pode ser assim (formato de entrada opcional):
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
Ou, mais fácil de visualizar:
Desafio:
Você deve colocar 6 árvores neste parque, de acordo com as seguintes regras:
- Deve haver exatamente 1 árvore por coluna e 1 árvore por linha
- Todas as áreas devem ter exatamente 1 árvore.
- Nenhuma árvore pode estar adjacente a outra árvore, vertical, horizontal ou diagonal
A solução para o layout acima é:
Nota: Existe apenas uma solução para cada quebra-cabeça
Regras adicionais:
- Os formatos de entrada e saída são opcionais
- A saída pode, por exemplo, ser uma lista de índices, uma grade com 1/0 indicando se há uma árvore nessa posição ou uma versão modificada da entrada em que as árvores são indicadas
- O tempo de execução deve ser determinístico
- O programa deve terminar em 1 minuto em um laptop moderno e razoável
- Brownie aponta se você não força bruta!
Casos de teste:
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
---
aAbbbb
aabbbB
aaCcbb
acccDb
Ecccdb
eeeFff
----------
aabccc
aacccc
aaddce
aeeeee
aeeefe
eeeeee
---
aaBccc
aacccC
aadDce
Aeeeee
aeeeFe
eEeeee
----------
aaaabb
aacbbb
aadddb
addeef
ddddee
dddeee
---
aaaaBb
aaCbbb
Aadddb
addeeF
dDddee
dddEee
----------
abbbcd
abebcd
addddd
dddddd
effdff
eeffff
---
abBbcd
abebCd
Addddd
dddDdd
effdfF
eEffff
Os mesmos casos de teste em um formato um pouco mais fácil de analisar:
Test case 1:
[1,1,2,2,2,2;1,1,2,2,2,2;1,1,3,3,2,2;1,3,3,3,4,2;5,3,3,3,4,2;5,5,5,6,6,6]
Test case 2:
[1,1,2,3,3,3;1,1,3,3,3,3;1,1,4,4,3,5;1,5,5,5,5,5;1,5,5,5,6,5;5,5,5,5,5,5]
Test case 3:
[1,1,1,1,2,2;1,1,3,2,2,2;1,1,4,4,4,2;1,4,4,5,5,6;4,4,4,4,5,5;4,4,4,5,5,5]
Test case 4:
[1,2,2,2,3,4;1,2,5,2,3,4;1,4,4,4,4,4;4,4,4,4,4,4;5,6,6,4,6,6;5,5,6,6,6,6]