Questa sfida si basa sul seguente di puzzle: si è data una n
da n
griglia con n
cellule marcate. Il tuo compito è dividere la griglia in n
parti in cui ogni parte è composta esattamente da n
celle, ognuna contenente esattamente una cella contrassegnata.
Esempio
Ecco un puzzle a sinistra e la sua (unica) soluzione a destra:
Sfida
Ti verrà data una serie di n
coordinate indicizzate zero in qualsiasi formato ragionevole.
[(0,0), (0,3), (1,0), (1,1), (2,2)]
E il tuo compito è quello di scrivere un programma che restituisca qualsiasi partizione valida (di nuovo, in qualsiasi formato ragionevole).
[
[(0,0), (0,1), (0,2), (1,2), (1,3)],
[(0,3), (0,4), (1,4), (2,4), (3,4)],
[(1,0), (2,0), (3,0), (4,0), (4,1)],
[(1,1), (2,1), (3,1), (3,2), (4,2)],
[(2,2), (2,3), (3,3), (4,3), (4,4)]
]
Se il puzzle non ha soluzione, il programma dovrebbe indicarlo lanciando un errore o restituendo una soluzione vuota.
Esempi di input / output
[(0,0)] => [[(0,0)]]
[(0,0), (1,1)] => [
[(0,0), (1,0)],
[(0,1), (1,1)]
]
[(0,0), (0,1), (1,0)] => [] (no solution)
[(0,0), (0,1), (0,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (1,1), (2,1)],
[(0,2), (1,2), (2,2)],
]
[(0,0), (0,2), (1,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (0,2), (1,1)],
[(1,2), (2,1), (2,2)],
]
punteggio
Questo è code-golf , quindi vince il codice più corto.