#include<bits/stdc++.h>
using namespace std;
long long n,m,s,h1,h2,a[10001][10001];
void h(long long z1,long long z2){
if(a[z1+1][z2]==0&&z1<n) h(z1+1,z2);
if(a[z1][z2+1]==0&&z2<m) h(z1,z2+1);
if(z1==n&&z2==m) s++;
}
int main(){
cin>>n>>m>>h1>>h2;
a[h1][h2]=1;
a[h1+1][h2+2]=1;
a[h1+2][h2+1]=1;
a[h1+2][h2-1]=1;
a[h1+1][h2-2]=1;
a[h1-1][h2-2]=1;
a[h1-2][h2-1]=1;
a[h1-2][h2+1]=1;
a[h1-1][h2+2]=1;
h(0,0);
cout<<s;
return 0;
}
本人是一个深资递归爱好者,如果真的不能用递归就算了......