#include <stdio.h> int abs(int a, int b){ if(a>b){ return a-b; }else return b-a; } int IsHouse(int x1, int y1, int x2, int y2){ if((abs(x1,x2)==1&&abs(y1,y2)==2)||(abs(x1,x2)==2&&abs(y1,y2)==1)) return 1; else return 0; } int Route(int x1, int y1, int x2, int y2){ int N; if(x1==0&&y1==0) return 0; while(x1!=0||y1!=0){ if(x1 == 0 && y1 == 1) return 1; if(x1 == 1 && y1 == 0) return 1; if(IsHouse(x1,y1,x2,y2)) return 0; if(x1==0) return Route(0,y1-1,x2,y2); if(y1==0) return Route(x1-1,0,x2,y2); return Route(x1-1,y1,x2,y2)+Route(x1,y1-1,x2,y2); } } int main(){ int x1, y1, x2, y2, N; // 前两个是B, 后两个是马 scanf("%d %d %d %d", &x1, &y1, &x2, &y2); N = Route(x1,y1,x2,y2); printf("%d\n", N); return 0; }
int IsHouse(int x1, int y1, int x2, int y2){
if((abs(x1,x2)==1&&abs(y1,y2)==2)||(abs(x1,x2)==2&&abs(y1,y2)==1)) return 1;
else return 0;
}
int Route(int x1, int y1, int x2, int y2){
int N;
if(x1==0&&y1==0) return 0;
while(x1!=0||y1!=0){
if(x1 == 0 && y1 == 1) return 1;
if(x1 == 1 && y1 == 0) return 1;
if(IsHouse(x1,y1,x2,y2)) return 0;
if(x1==0) return Route(0,y1-1,x2,y2);
if(y1==0) return Route(x1-1,0,x2,y2);
return Route(x1-1,y1,x2,y2)+Route(x1,y1-1,x2,y2);
}
}
int main(){
int x1, y1, x2, y2, N; // 前两个是B, 后两个是马
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
N = Route(x1,y1,x2,y2);
printf("%d\n", N);
return 0;
}