Cerința
Se dă o tablă de șah formată din n linii și m coloane, definind n*m zone, unele dintre ele fiind libere, altele conținând obstacole. În zona de coordonate 1 1 se află un cal care se poate deplasa pe tablă în L, ca la șah, fără a părăsi tabla, fără a trece prin zone care conțin obstacole și fără a trece de două ori prin aceeași zonă.
Determinați numărul de modalități prin care calul poate ajunge în zona de coordonate n m – unde se află o căpiță de fân, precum și modalitate de a face acest lucru.
Date de intrare
Fișierul de intrare traseucal1.in conține pe prima linie numerele n m, separate printr-un spațiu. Următoarele n linii conțin câte m valori, care descriu tabla: 0 corespunde unei zone libere, caracterul 1 corespunde unei zone ocupate de un obstacol.
Date de ieşire
Fișierul de ieşire traseucal1.out va conține pe prima linie numărul C de modalități prin care calul poate ajunge la căpița de fân; următoarele n linii vor conține câte m numere, care descriu traseul calului, astfel:
- zonelor prin care nu va trece calul le corespund valoarea
0. - zonei în care se află inițial calul îi corespunde valoarea
1 - următoarei zone din traseul calului îi corespunde valoarea
2 - fiecărei zone din traseul calului îi corespunde o valoare număr natural semnificând la al câtelea pas ajunge calul în acea zonă.
Numerele de pe fiecare linie fișierului de ieșire sunt separate prin exact un spațiu.
Restricţii şi precizări
1 ≤ n,m ≤ 10- zona în care se află calul și zona în care trebuie să ajungă sunt libere
- dacă nu există nicio modalitate prin care calul ajunge la căpița de fân toate cele
n*mnumere din fișierultraseucal1.outvor fi zero. - oricare traseu valid al calului este considerat corect
Exemplu:
traseucal1.in
4 5 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0
traseucal1.out
15 1 4 0 0 0 0 0 0 3 0 0 2 5 0 0 0 0 0 0 6
Explicație
Sunt 15 trasee valide ale calului. Unul dintre ele a fost afișat.