样例过了但有6个点 WA
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,-1,0};
int dy[4]={1,0,0,-1};
int r,c,k,sx,sy,lx,ly;
int vis[20][20],ans=0;
void dfs(int x,int y){
if(x==lx&&y==ly){
ans++;
return ;
}
vis[x][y]=1;
for(int i=0;i<2;i++){
int nx=x+dx[i],ny=y+dy[i];
if(nx<1||nx>r||ny<1||ny>c||vis[nx][ny]==1) continue;
dfs(nx,ny);
}
vis[x][y]=0;
}
int main()
{
int a,b;
cin>>r>>c>>k>>sx>>sy>>lx>>ly;
for(int i=1;i<=k;i++){
cin>>a>>b;
vis[a][b]=1;
}
vis[sx][sy]=1;
dfs(sx,sy);
cout<<ans;
return 0;
}