Ce défi est inspiré de cette application .
Il s'agit d'une version beaucoup plus simple de ce défi . Ce défi est le code-golf , tandis que l'autre est le code le plus rapide .
Vous recevrez une grille de saisie carrée, de dimensions 6 par 6 qui est divisée en 6 zones, où les cellules de chaque zone ont un identifiant unique (j'utiliserai des lettres minuscules de af dans le texte ici, mais vous pouvez choisir ce que vous voulez, par exemple des entiers 1-6 ).
L'entrée peut ressembler à ceci (format d'entrée facultatif):
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
Ou, plus facile à visualiser:
Défi:
Vous devez placer 6 arbres dans ce parc, selon les règles suivantes:
- Il doit y avoir exactement 1 arbre par colonne et 1 arbre par ligne
- Toutes les zones doivent avoir exactement 1 arbre.
- Aucun arbre ne peut être adjacent à un autre arbre, verticalement, horizontalement ou en diagonale
La solution à la disposition ci-dessus est:
Remarque: il n'y a qu'une seule solution pour chaque puzzle
Règles supplémentaires:
- Les formats d'entrée et de sortie sont facultatifs
- La sortie pourrait par exemple être une liste d'indices, une grille avec 1/0 indiquant s'il y a un arbre à cette position, ou une version modifiée de l'entrée où les arbres sont indiqués
- Le temps d'exécution doit être déterministe
- Le programme doit se terminer en 1 minute sur un ordinateur portable moderne raisonnable
- Points de brownie si vous ne faites pas de force brute!
Cas de test:
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
Mêmes cas de test sur un format un peu plus facile à analyser:
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]