#include<stdio.h>
typedef struct point{
int x;
int y;
int b;
}POINT;
int main()
{
int maze[5][5] , book[5][5]= {0};
POINT que[50];
int nx , ny , tx , ty;
int head , tail ;
int next[4][2]= {0,1,1,0 ,-1,0 ,0,-1 };
int i , j;
int flag;
head = tail= 0; nx= 4 ; ny= 4 ;book[nx][ny]= 1 ;
que[0].x= nx; que[0].y= ny ; que[0].b= -1;
flag =0;
tail ++;
for(i= 0 ; i< 5 ; i++)
for(j= 0 ; j< 5 ; j++){
scanf("%d",&maze[i][j]);
}
while( head< tail ){
for( i= 0 ; i< 4 ; i++){
tx = nx+ next[i][0];
ty = ny+ next[i][1];
if(tx> 4|| tx < 0|| ty > 4|| ty < 0)continue ;
if(book[tx][ty]== 1|| maze[tx][ty]== 1)continue ;
que[tail].x = tx ;
que[tail].y = ty ;
que[tail].b = head;
tail ++ ;
book[tx][ty] =1;
// printf("OK %d %d\n",tx,ty);
if(tx== 0&& ty == 0) {
flag =1;
break;
}
}
head ++;
nx = que[head].x;
ny = que[head].y;
// printf("%d %d\n",head,tail);
if(flag== 1)break;
}
tail --;
while(tail!= -1){
printf("(%d, %d)\n",que[tail].x,que[tail].y);
tail = que[tail].b;
}
}
// BFS 同步搜索, 由终点到起点入栈 , 链式输出路径;