#include<stdio.h> #define m 5 #define n 6 struct stype { int x; int y;int pre; }sq[400]; int mg[m+1][n+1]; int zx[8],zy[8]; void printlj (int rear) {
int i; i=rear; do { printf("(%d,%d)",sq[i].x,sq[i].y); i=sq[i].pre;}while(!sq[i].pre); } void mglj() { int i,j,v,x,y,front,rear,find; sq[1].x=1;sq[1].y=1;sq[1].pre=0; find=0; front=1;rear=1;mg[1][1]=-1; while(front<=rear&&!find) { x=sq[front].x;y=sq[front].y; for(v=1;v<=8;v++) { i=x+zx[v];j=y+zy[v]; if(mg[i][j]==0) { rear++;sq[rear].x=i; sq[rear].y=j; sq[rear].pre=front; mg[i][j]=-1; } if(i==m&&j==n) { printlj(rear); find=1; } } front++; } if(!find) printf("NOT EXIT/n"); } main() { int i,j; for(i=1;i<=m;i++) for(j=1;j<n;j++) scanf("%ld",&mg[i][j]); for(i=0;i<=m+1;i++) { mg[i][0]=1;mg[i][n+1]=1; } for(j=0;j<=n+1;j++) { mg[0][j]=1;mg[m+1][j]=1; } zx[1]=-1;zx[2]=-1;zx[3]=0;zx[4]=1; zx[5]=1;zx[6]=1;zx[7]=0;zx[8]=-1; zy[1]=0;zy[2]=1;zy[3]=1;zy[4]=1; zy[5]=0;zy[6]=-1;zy[7]=-1;zy[8]=-1; mglj(); }