Este desafío está inspirado en esta aplicación .
Esta es una versión mucho más fácil de este desafío . Este desafío es el código golf , mientras que el otro es el código más rápido .
Se le dará una cuadrícula de entrada cuadrada, de dimensiones 6 por 6 que se divide en 6 áreas, donde las celdas de cada área tienen un identificador único (usaré letras minúsculas de af en el texto aquí, pero puede elegir lo que quiera, por ejemplo, enteros 1-6 ).
La entrada puede verse así (formato de entrada opcional):
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
O, más fácil de visualizar:
Desafío:
Debe colocar 6 árboles en este parque, de acuerdo con las siguientes reglas:
- Habrá exactamente 1 árbol por columna y 1 árbol por fila
- Todas las áreas deben tener exactamente 1 árbol.
- Ningún árbol puede ser adyacente a otro árbol, vertical, horizontal o diagonal
La solución al diseño anterior es:
Nota: solo hay una solución para cada rompecabezas
Reglas adicionales:
- Los formatos de entrada y salida son opcionales.
- El resultado podría ser, por ejemplo, una lista de índices, una cuadrícula con 1/0 que indica si hay un árbol en esa posición, o una versión modificada de la entrada donde se indican los árboles
- El tiempo de ejecución debe ser determinista.
- El programa debe finalizar dentro de 1 minuto en una computadora portátil moderna razonable
- ¡Brownie señala si no haces fuerza bruta!
Casos de prueba:
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
Los mismos casos de prueba en un formato que es un poco más fácil de analizar:
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]