int main() {
int m, n, p, q;
scanf("%d%d%d%d", &m, &n, &p, &q);
int a[24][24] = { 0 }, s[24][24] = { 0 };//a判断是否是控制点,s到这一点的步数
int i,j;
m = m + 2;//防止越界
n = n + 2;
p = p + 2;
q = q + 2;
s[2][3] = 1;//设定初始值
s[3][2] = 1;
a[p][q] = a[p - 1][q - 2] = a[p - 1][q + 2] = a[p - 2][q - 1] = a[p - 2][q + 1] = a[p + 1][q - 2]
= a[p + 1][q + 2] = a[p + 2][q - 1] = a[p + 2][q + 1] = 1;//找到控制点
for (i = 2; i <= m; i++) {
for (j = 2; j <= n; j++) {
if (a[i - 1][j] != 1)s[i][j]+= s[i - 1][j];
if (a[i][j - 1] != 1)s[i][j] += s[i][j - 1];//如果不是控制点则把上一步的步数加上来
//printf("%d*", a[i][j]);
//printf("%d ", s[i][j]);
}
//printf("\n");
}
printf("%d", s[m][n]);
}```