明明开了 long long 啊,为什么一直过不了
#include <iostream>
#include <cstring>
using namespace std;
int n,m,x,y;
const int dx[]={-2,-1,1,2,2,1,-1,-2},
dy[]={1,2,2,1,-1,-2,-2,-1};
long long f[30][30];
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
memset(f,-1,sizeof(f));
cin>>n>>m>>x>>y;
for(int i=0;i<=n;i++)
f[i][0]=1;
for(int i=0;i<=m;i++)
f[0][i]=1;
f[x][y]=0;
for(int i=0;i<8;i++)
{
if(x+dx[i]>=0 && y+dy[i]>=0)
f[x+dx[i]][y+dy[i]]=0;
}
if(f[0][0]==0 || f[n][m]==0)
{
cout<<0;
return 0;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(f[i][j]!=0)
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
cout<<f[n][m];
return 0;
}