RT,最终得分为60分 第3、4测试点WA
#include <bits/stdc++.h>
using namespace std;
const int maxn=20;
typedef long long ll;
ll cx[9]={0,-1,-2,1,-1,1,-2,2,2};
ll cy[9]={0,-2,-1,-2,2,2,1,-1,1};
ll n,m,hx,hy;
ll f[maxn+1][maxn+1];
bool cb[maxn+1][maxn+1];
int main(){
memset(cb,true,sizeof(cb));
cin>>n>>m>>hx>>hy;
for(ll i=1;i<=20;i++)
f[0][i]=f[i][0]=1;
for(ll i=0;i<=8;i++){
cx[i]+=hx;
cy[i]+=hy;
if(cx[i]<0||cx[i]>20||cy[i]<0||cy[i]>20){
cx[i]=hx;
cy[i]=hy;
}
cb[cx[i]][cy[i]]=false;
f[cx[i]][cy[i]]=0;
if(cx[i]==0&&cy[i]==0){
cout<<0<<endl;
return 0;
}
}
for(ll i=1;i<=n;i++)
for(ll j=1;j<=m;j++)
if(cb[i][j]!=false)
f[i][j]=f[i-1][j]+f[i][j-1];
cout<<f[n][m]<<endl;
return 0;
}