记录编号 593489 评测结果 AAAAAAAAAA
题目名称 迷宫 最终得分 100
用户昵称 Gravatar罗峰 是否通过 通过
代码语言 C++ 运行时间 0.031 s
提交时间 2024-09-03 21:23:10 内存使用 3.52 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;
    }