记录编号 |
593489 |
评测结果 |
AAAAAAAAAA |
题目名称 |
迷宫 |
最终得分 |
100 |
用户昵称 |
罗峰 |
是否通过 |
通过 |
代码语言 |
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;
}