过河卒

turing_lisihan 2023-12-16 9:26:28

#include <iostream>
#include <iomanip>
#include <algorithm>
long long f[23][23];
int a[23][23];
int dx[8]{-1,+1,+2,+2,+1,-1,-2,-2};
int dy[8]{-2,-2,-1,+1,+2,+2,+1,-1}; 
using namespace std;
int main() {
	int n, m, x, y;
	cin >> n >> m >> x >> y;
	n+=2;
	m+=2;
	x+=2;
	y+=2;
	a[x][y]=1;
	for (int i=0;i<8;i++) {
		int nx=x+dx[i];
		int ny=y+dy[i];
		a[nx][ny]=1;
	}
	f[2][2]=1;
	for (int i=2; i<=n; i++) {
		for (int j=2; j<=m; j++) {
			if (i==2&&j==2) {
				continue;
			} 
			if (!a[i][j]) {
			    f[i][j]=f[i-1][j]+f[i][j-1];	
			}
		}
	}
	cout << f[n][m];
	return 0;
}