WA #1 #2 #4 #5 #7 #8 #10
#include<bits/stdc++.h>
using namespace std;
long long ans=0;
long long n,m,t;
long long sx,sy,fx,fy,zx,zy;
long long amap[111][111];
long long dx[4]={0,0,-1,1};
long long dy[4]={-1,1,0,0};
bool vis[111][111];
void dfs(int x,int y){
if(x==fx&&y==fy){
ans++;
return ;
}
for(int i=1;i<=4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&vis[nx][ny]==true){
vis[nx][ny]=true;
dfs(nx,ny);
vis[nx][ny]=false;
}
}
return ;
}
int main(){
memset(amap,0,sizeof(amap));
cin>>n>>m>>t;
cin>>sx>>sy>>fx>>fy;
amap[sx][sy]=1;
while(t--){
cin>>zx;
cin>>zy;
amap[zx][zy]=1;
}
dfs(sx,sy);
cout<<ans<<endl;
}