本题为洛谷:
#include<iostream>
using namespace std;
int maze[6][6];
int n,m,t,sx,sy,fx,fy,obsh,obsl,s;
int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}},vis[6][6];
void dfs(int x,int y){
if(x==fx-1&&y==fy-1){
s++;
return ;
}
vis[x][y]=1;
for(int i=0;i<4;i++){
int dx=x+dir[i][0];
int dy=y+dir[i][1];
if(0<=dx&&dx<n&&0<=dy&&dy<m&&maze[dx][dy]!=-1&&vis[dx][dy]==0) dfs(dx,dy);
}
vis[x][y]=0;
}
int main(){
cin>>n>>m>>t>>sx>>sy>>fx>>fy;
while(t--){
cin>>obsh>>obsl;
maze[obsh-1][obsl-1]=-1;
}
dfs(sx-1,sy-1);
cout<<s;
return 0;
}