记录编号 |
336156 |
评测结果 |
AAAAAAAAAA |
题目名称 |
走迷宫 |
最终得分 |
100 |
用户昵称 |
Zwoi_只会打表抄代码的蒟蒻 |
是否通过 |
通过 |
代码语言 |
C |
运行时间 |
0.012 s |
提交时间 |
2016-11-02 22:00:27 |
内存使用 |
0.27 MiB |
显示代码纯文本
#include <stdio.h>
int map[20][20],book[20][20],n,m,x[400],y[400],j,xx,yy,e,nx,ny;
void dfs(int x1,int y1,int step)
{
int next[4][2]=
{
{-1,0},
{0,-1},
{0,1},
{1,0}
};
int i,ii,nx,ny;
if(x1==xx&&y1==yy)
{
e++;
for(ii=1;ii<=step-1;ii++)
printf("(%d,%d)->",x[ii],y[ii]);
printf("(%d,%d)\n",x1,y1);
}
for(i=0;i<=3;i++)
{
nx=x1+next[i][0];
ny=y1+next[i][1];
if(nx>n||nx<1||ny>m||ny<1)
continue;
if(map[nx][ny]==1&&book[nx][ny]==0)
{
step++;
x[step]=nx;
y[step]=ny;
book[nx][ny]=1;
dfs(nx,ny,step);
step--;
book[nx][ny]=0;
}
}
return ;
}
int main()
{
int i;
freopen("maize.in","r",stdin);
freopen("maize.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&map[i][j]);
scanf("%d%d",&x[1],&y[1]);
scanf("%d%d",&xx,&yy);
e=-1;
book[x[1]][y[1]]=1;
dfs(x[1],y[1],1);
if(e==-1)
printf("-1");
return 0;
}