#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 25;
long long g[N][N];
long long mem[N][N];
long long xb,yb,xc,yc;
int dx[] = {2,2 ,1 ,1,-1,-1,-2,-2};
int dy[] = {1,-1,-2,2,-2, 2,-1, 1};
long long res = 0;
long long dfs(int x,int y){
if(mem[x][y]) return mem[x][y];
long long sum = 0;
if(x == 0 && y == 0) sum = 1;
else if(g[x][y]) sum = 0;
else if(x < 0 || y < 0) sum = 0;
else sum = dfs(x-1,y) + dfs(x,y-1);
mem[x][y] = sum;
return sum;
}
int main(){
cin >> xb >> yb >> xc >> yc;
g[xc][yc] = 1;
for(int i = 0; i < 8; i++){
if(xc+dx[i] >=0 && yc+dy[i] >=0)
g[xc+dx[i]][yc+dy[i]] = 1;
}
res = dfs(xb,yb);
cout << res;
return 0;
}
![如图]()