麻烦大佬看看是哪里错了,本蒟蒻感激不尽
#include <iostream>
#include <cstring>
using namespace std;
int n,m,t,x,y,s,sx,sy,fx,fy,a[6][6],g[6][6],dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
void dfs(int p,int q){
if(p==fx&&q==fy){
g[p][q]=0;
s++;
return;
}
for(int i=0;i<4;i++){
int u=p+dx[i],v=q+dy[i];
if(u<1||v<1||u>n||v>m||a[u][v]||g[u][v]) continue;
g[u][v]=1;
dfs(u,v);
g[u][v]=0;
}
}
int main(){
memset(a,0,sizeof(a));
memset(g,0,sizeof(g));
scanf("%d%d%d%d%d%d%d",&n,&m,&t,&sx,&sy,&fx,&fy);
while(t--){
scanf("%d%d",&x,&y);
a[x][y]=1;
}
dfs(sx,sy);
printf("%d",s);
return 0;
}