И это всё МОЁ

Привет. Задача выглядит примерно вот как: есть матрица, состоящая из 0, 1, а так же содержит одну 2.
0 - это свободная ячейка.
1 - это блок
2 - это начальная точка.
Начиная с начальной точки, построить путь, который обходит все свободные ячейки по одному разу, не затрагивая блоки. Ну типа Гамильтонов путь. Ходить можно вверх/вниз/вправо/влево.


Максимальный размер матрицы 13х13 примерно, желательно чтобы алгоритм работал за разумное время.









 , , ,