记录编号 137281 评测结果 AAAAAAAAAA
题目名称 迷宫 最终得分 100
用户昵称 Gravatar乌龙猹 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2014-11-04 16:56:46 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
using namespace std;

int n,m,t;
int Ans=0;
int stx,sty,enx,eny;

int f[6][6];
bool flag[6][6];

inline void dfs(int kx,int ky,int eND,int End)
{
	if(kx==eND && ky==End)
	{
		Ans++;
		return;
	}
	if(kx+1<=n&&!flag[kx+1][ky]&&!f[kx+1][ky])
	{
		flag[kx+1][ky]=1;
		dfs(kx+1,ky,eND,End);
		flag[kx+1][ky]=0;
	}
	if(ky+1<=m&&!flag[kx][ky+1]&&!f[kx][ky+1])
	{
		flag[kx][ky+1]=1;
		dfs(kx,ky+1,eND,End);
		flag[kx][ky+1]=0;
	}
	if(kx-1>=1&&!flag[kx-1][ky]&&!f[kx-1][ky])
	{
		flag[kx-1][ky]=1;
		dfs(kx-1,ky,eND,End);
		flag[kx-1][ky]=0;
	}
	if(ky-1>=1&&!flag[kx][ky-1]&&!f[kx][ky-1])
	{
		flag[kx][ky-1]=1;
		dfs(kx,ky-1,eND,End);
		flag[kx][ky-1]=0;
	}
}

int main()
{
	freopen("maze.in","r",stdin);
	freopen("maze.out","w",stdout);
	scanf("%d%d%d",&n,&m,&t);
	scanf("%d%d%d%d",&stx,&sty,&enx,&eny);
	f[stx][sty]=1;
	for(int i=1;i<=t;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		f[x][y]=1;
	}
	dfs(stx,sty,enx,eny);
	printf("%d\n",Ans);
	return 0;
}