记录编号 136392 评测结果 AAAAAAAAAA
题目名称 走迷宫 最终得分 100
用户昵称 Gravatar乌龙猹 是否通过 通过
代码语言 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);
}