#include<stdio.h>
//#include<iostream.h>
//#include<malloc.h>
//int **maze;
//int N1,N2;
int maze[10][10]={{1,1,1,1,1,1,1,1,1,1},{1,0,0,1,0,0,0,1,0,1},{1,0,0,1,0,0,0,1,0,1},{1,0,0,0,0,1,1,0,0,1},{1,0,1,1,1,0,0,0,0,1},{1,0,0,0,1,0,0,0,0,1},{1,0,1,0,0,0,1,0,0,1},{1,0,1,1,1,0,1,1,0,1},{1,1,0,0,0,0,0,0,0,1},{1,1,1,1,1,1,1,1,1,1}};
int zx=8,zy=2;
void PrintMaze(void){
int l[100][2],i,j;
for(i=0;i<100;i++){
l[i][0]=-1;
}
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(maze[i][j]>2){
l[maze[i][j]-3][0]=i;
l[maze[i][j]-3][1]=j;
}
}
}for(i=0;i<100;i++){
if(l[i][0]!=-1)printf("(%d,%d)\n",l[i][0],l[i][1]);
else goto end;
}
end:for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(maze[i][j]>2){
maze[i][j]=2;
}printf("%d ",maze[i][j]);
}printf("\n");
}
}int SelMaze(int x,int y){
if(x>9||y>9||x<0||y<0)return(0);
return(maze[x][y]==0);
}int FindMaze(int x,int y,int m){
if(x==zx&&y==zy){
maze[x][y]=m;
return(1);
}
if(SelMaze(x+1,y)){
maze[x][y]=m;
if(FindMaze(x+1,y,m+1))return(1);
maze[x][y]=0;
}if(SelMaze(x,y+1)){
maze[x][y]=m;
if(FindMaze(x,y+1,m+1))return(1);
maze[x][y]=0;
}if(SelMaze(x,y-1)){
maze[x][y]=m;
if(FindMaze(x,y-1,m+1))return(1);
maze[x][y]=0;
}if(SelMaze(x-1,y)){
maze[x][y]=m;
if(FindMaze(x-1,y,m+1))return(1);
maze[x][y]=0;
}
return(0);
}
void main(){
int x=1,y=1;
if(!FindMaze(x,y,3))printf("迷宮無出路\n");
else PrintMaze();
}
//做了20分鐘啊!為分奮鬥ING!