Fülle das Gitter

Gegeben ist ein Gitter, das Sie mit L-förmigen Trominos auffüllen sollen, wobei eine einzelne Zelle (r, c) frei bleiben muss.
Ein L-förmiges Tromino entsteht, indem man aus einem Quadrat eine einzelne Zelle entfernt.
Falls es nicht möglich ist, das Gitter zu füllen, soll das Programm Impossible ausgeben.
 
L-förmiges Tromino
L-förmiges Tromino

Eingabe

Die erste Zeile der Eingabe enthält eine einzelne ganze Zahl n (1 ≤ n ≤ 9).
Die zweite Zeile enthält die Koordinaten der leeren Zelle (r, c) (1 ≤ r, c ≤ ), wobei r die Zeile der leeren Zelle und c die Spalte angibt.

Ausgabe

Das Programm soll Zeilen ausgeben, in denen jeweils Zahlen durch ein Leerzeichen getrennt stehen. Jede dieser Zahlen steht für ein einzelnes L-förmiges Tromino. Die entfernte Zelle soll mit einer 0 markiert werden. Die Trominos sollen von 1 bis durchnummeriert sein. Gibt es mehrere Lösungen, kann das Programm eine beliebige davon ausgeben.

Beispiele

Eingabe
Ausgabe
2 1 1
0 1 3 3 1 1 4 3 2 4 4 5 2 2 5 5
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 10 MB

To check your solution you need to sign in
Sign in to continue