Ce défi est inspiré de cette application . Les cas de test sont empruntés à cette application.
Il s'agit d'un défi de code le plus rapide , où l'objectif est de résoudre les cas de test les plus importants en un minimum de temps. Certains scénarios de test plus petits sont fournis, afin que les utilisateurs puissent tester leurs algorithmes plus rapidement.
Vous recevrez une grille d'entrée carrée, de dimensions n par n où 9 <= n <= 12 . Cette grille sera divisée en n zones, où les cellules de chaque zone ont des identifiants uniques (je vais utiliser des lettres minuscules de al dans le texte ici, mais vous pouvez choisir ce que vous voulez, par exemple des entiers 1-12 ) .
L'entrée peut ressembler à ceci (format d'entrée facultatif):
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
Ou, plus facile à visualiser:
Défi:
Vous devez placer 2 * n arbres dans ce parc, selon les règles suivantes:
- Il doit y avoir exactement 2 arbres par colonne et 2 arbres par ligne
- Toutes les zones doivent avoir exactement 2 arbres.
- 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 avec 1 minute sur l'ordinateur de @ isaacg
- Spécifications: 4 processeurs, processeur i5-4300U à 1,9 GHz, 7,5 G de RAM.
- Dans le cas où votre programme ne peut pas résoudre les deux plus grands cas de test en une minute chacun, alors le temps pour le deuxième plus grand ( n = 11 ) sera votre score. Vous perdrez contre une solution qui résout le plus gros cas.
Cas de test:
Je pourrais modifier cette liste si les soumissions semblent être personnalisées pour s'adapter à ces cas de test.
12 par 12 :
--- Input ---
aaaaabccccdd
aaaaabccccdd
aaaaabbbbddd
eeeafffgbghh
eeaafffgbghh
eefffffggghh
eeefijffghhh
iieiijjjjkhh
iiiiijjjjkhk
lljjjjjjjkkk
llllllkkkkkk
llllllkkkkkk
--- Solution ---
aaaaabcccCdD
aaaaaBcCccdd
aAaaabbbbdDd
eeeaffFgBghh
eeAaFffgbghh
eefffffGgGhh
EeefijffghhH
iiEiIjjjjkhh
IiiiijjjjkHk
lljJjJjjjkkk
lLllllkkKkkk
lllLllKkkkkk
11 par 11 :
--- Input ---
aaaaaaabbcc
adddabbbbcc
edddbbbbbbc
eddddbbbbbb
effffggghhh
effffgghhii
eefffjjhhii
eeeejjjhhii
eeejjjjkiii
jjjjjjkkiii
jjjjjkkkiii
--- Solution ---
aaAaaaabbCc
adddAbBbbcc
eDddbbbbbbC
eddDdBbbbbb
effffggGhHh
eFfffGghhii
eefFfjjhHii
EeeejjjhhiI
eeEjjjjKiii
JjjjJjkkiii
jjjjjkKkIii
10 par 10
--- Input ---
aaaaabccdd
aeaabbbccd
aeaabfbgcd
eeeaafggcd
eeeaafghcd
eeeiifghcd
ieiiigghcd
iiijighhcd
jjjjighhcd
jjjggghhdd
--- Solution ---
aaAaabccdD
aeaaBbBccd
aEaabfbgcD
eeeaaFgGcd
eEeAafghcd
eeeiiFghCd
IeiIigghcd
iiijigHhCd
JjJjighhcd
jjjgGghHdd
9 par 9
--- Input ---
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
--- Solution ---
aAbBbbbcc
adddbbBcC
adEeEcccc
AdddefgCc
hhhDiFggg
hDddifffG
hhhiIfFfg
HiHiifffg
iiiiiIgGg
--- Input ---
aaabbbccc
aaaabbccc
aaaddbcce
ffddddcce
ffffddeee
fgffdheee
fggfhhhee
iggggheee
iiigggggg
--- Solution ---
aaAbBbccc
AaaabbcCc
aaaDdBcce
fFddddcCe
fffFdDeee
fGffdheeE
fggfHhHee
IggggheeE
iiIgggGgg
There shall be exactly 2 trees per column, and 2 trees per row
donc une force brute est probablement impossible.