30分求助
#include<iostream>
using namespace std;
int a[6][6],sum,c,n,m;
int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void zmg(int x,int y)
{
if(a[x][y]==-1&&c==1)
{
return ;
}
if(a[x][y]==-1)
{
c=1;
}
if(x==n-1&&y==m-1)
{
sum++;
return ;
}
a[x][y]=1;
for(int h=1;h<=4;h++)
{
int i=x-dir[i-1][0];
int j=x-dir[i-1][1];
if(a[n][m]==0&&n>0&&n>i&&m>0&&m>j)
{
zmg(i,j);
}
}
a[x][y]=0;
}
int main()
{
int t,x,y,sx,sy;
cin>>n>>m>>t;
cin>>sx>>sy;
a[sx][sy]=-1;
cin>>x>>y;
a[x][y]=-2;
for(int i=1;i<=t;i++)
{
cin>>x>>y;
a[x][y]=1;
}
zmg(sx,sy);
cout<<sum;
return 0;
}