| 记录编号 | 
        136392 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        1105.走迷宫 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         乌龙猹 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.002 s  | 
    
    
        | 提交时间 | 
        2014-11-02 21:12:30 | 
        内存使用 | 
        0.29 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<cstdio>
#define maxn 15
using namespace std;
int m,n,stx,sty,enx,eny,flag=0;
int a[maxn][maxn]={0},c[50][3];
int xx[4]={-1,0,0,1},
	yy[4]={0,-1,1,0};
void dx(int);
void out(int);
int main()
{
	freopen("maize.in","r",stdin);
	freopen("maize.out","w",stdout);
	scanf("%d%d",&m,&n);
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++) scanf("%d",&a[i][j]);
	}
	scanf("%d%d%d%d",&stx,&sty,&enx,&eny);
	c[1][1]=stx;
	c[1][2]=sty;
	a[stx][sty]=0;
	dx(2);
	if(!flag) printf("-1\n");
	return 0;
}
void dx(int x)
{
	for(int i=0;i<4;i++)
	{
		int kx=c[x-1][1]+xx[i],ky=c[x-1][2]+yy[i];
		if(kx>=1&&kx<=m&&ky>=1&&ky<=n)
		{
			if(a[kx][ky])
			{
				a[kx][ky]=0;
				c[x][1]=kx;
				c[x][2]=ky;
				if(c[x][1]==enx&&c[x][2]==eny) out(x);
				else dx(x+1);
				a[kx][ky]=1;
			}
		}
	}
}
void out(int ii)
{
	flag=1;
	for(int i=1;i<ii;i++)
	{
		printf("(%d,%d)->",c[i][1],c[i][2]);
	}
	printf("(%d,%d)\n",enx,eny);
}