登录的:
#include <bits/stdc++.h>
using namespace std;
int n, m, x, y, cnt=0;
void f(int __x, int __y) { //__x和__y分别表示卒或分身卒所在的x与y坐标值
if(__x==x&&__y==y) { //到达河
cnt += 1;
} else if(__x>x||__y>y|| //卒与分身卒失败的所有原因 1.越界 2.碰到马 3.被马吃
__x==n&&__y==m ||
__x==n+1&&__y==m+2 || __x==n+2&&__y==m+1 ||
__x==n-1&&__y==m-2 || __x==n-2&&__y==m-1 ||
__x==n-1&&__y==m+2 || __x==n+1&&__y==m-2 ||
__x==n+2&&__y==m-1 || __x==n-2&&__y==m+1
) {
return;
} else {
f(__x+1, __y); //分身1(水平向右走)
f(__x, __y+1); //分身2(竖向前走)
}
}
int main() {
ios::sync_with_stdio(false); //Stdout加速
cin.tie(0);
cin >> x >> y >> n >> m; //输入
f(0, 0); //(0,0)是本体卒的位置
cout << cnt; //输出
return 0;
}