记录编号 467825 评测结果 AAAAAAAAAA
题目名称 迷宫 最终得分 100
用户昵称 GravatarJustWB 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2017-10-31 12:19:59 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
inline int get();
void dfs(int x,int y);
int n,m,t,sx,sy,ex,ey,ans;
bool jazz[10][10];
int main()
{
	freopen("maze.in","r",stdin);
	freopen("maze.out","w",stdout);
	n=get(),m=get(),t=get();
	sx=get(),sy=get();
	jazz[sx][sy]=true;
	ex=get(),ey=get();
	for(int i=1;i<=t;i++)jazz[get()][get()]=true;
	dfs(sx,sy);
	printf("%d\n",ans);
	return 0;
}
void dfs(int x,int y)
{
	if(x==ex&&y==ey)
	{
		ans++;
		return;
	}
	if(x+1<=m&&(!jazz[x+1][y]))
	{
		jazz[x+1][y]=true;
		dfs(x+1,y);
		jazz[x+1][y]=false;
	}
	if(x-1>=1&&(!jazz[x-1][y]))
	{
		jazz[x-1][y]=true;
		dfs(x-1,y);
		jazz[x-1][y]=false;
	}
	if(y+1<=n&&(!jazz[x][y+1]))
	{
		jazz[x][y+1]=true;
		dfs(x,y+1);
		jazz[x][y+1]=false;
	}
	if(y-1>=1&&(!jazz[x][y-1]))
	{
		jazz[x][y-1]=true;
		dfs(x,y-1);
		jazz[x][y-1]=false;
	}
}
inline int get()
{
	int t=0;char c=getchar(),j=1;
	while(!isdigit(c))
		if(c=='-')j=-1,c=getchar();
		else c=getchar();
	while(isdigit(c))
		t=(t<<3)+(t<<1)+c-'0',
		c=getchar();
	return j*t;
}