记录编号 336905 评测结果 AAAAAAAAAA
题目名称 迷宫 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.022 s
提交时间 2016-11-03 19:31:09 内存使用 0.30 MiB
显示代码纯文本
#include <stdio.h>
int map[20][20],book[20][20],n,m,x,y,j,xx,yy,e,nx,ny,xxx,yyy,k;
void dfs(int x1,int y1)
{
int next[4][2]=
{
{-1,0},
{0,-1},
{0,1},
{1,0}
};
int i,ii,nx,ny;
	if(x1==xxx&&y1==yyy)
	{
		e++;
		return ;
	}
	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]==0&&book[nx][ny]==0)
		{
			book[nx][ny]=1;
			dfs(nx,ny);
			book[nx][ny]=0;
		}
	}
	return ;
}
int main()
{
	int i;
	freopen("maze.in","r",stdin);
	freopen("maze.out","w",stdout);
	scanf("%d%d%d",&n,&m,&k);
	scanf("%d%d%d%d",&xx,&yy,&xxx,&yyy);
	for(i=1;i<=k;i++)
	{
		scanf("%d%d",&x,&y);
		map[x][y]=1;
	}
	if(map[xxx][yyy]==1)
	{
		printf("0");
		return 0;
	}
	e=0;
	book[xx][yy]=1;
	dfs(xx,yy);
	printf("%d",e);
	return 0;
}