Questa sfida è ispirata a questa app .
Questa è una versione molto più semplice di questa sfida . Questa sfida è il code-golf , mentre l'altro è il codice più veloce .
Ti verrà data una griglia di input quadrata, di dimensioni 6 per 6 che è divisa in 6 aree, in cui le celle di ciascuna area hanno un identificatore univoco (userò lettere minuscole da af nel testo qui, ma puoi scegliere quello che preferisci, ad esempio numeri interi 1-6 ).
L'input potrebbe essere simile al seguente (formato di input opzionale):
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
Oppure, più facile da visualizzare:
Sfida:
Devi posizionare 6 alberi in questo parco, secondo le seguenti regole:
- Ci deve essere esattamente 1 albero per colonna e 1 albero per riga
- Tutte le aree devono avere esattamente 1 albero.
- Nessun albero può essere adiacente ad un altro albero, in verticale, in orizzontale o in diagonale
La soluzione al layout sopra è:
Nota: esiste una sola soluzione per ciascun puzzle
Regole aggiuntive:
- I formati di input e output sono opzionali
- L'output potrebbe ad esempio essere un elenco di indici, una griglia con 1/0 che indica se c'è un albero in quella posizione o una versione modificata dell'input in cui sono indicati gli alberi
- Il tempo di esecuzione deve essere deterministico
- Il programma deve terminare entro 1 minuto su un laptop moderno e ragionevole
- Brownie indica se non hai la forza bruta!
Casi 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
Stessi casi di test su un formato un po 'più semplice da analizzare:
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]