#include <iostream>
using namespace std;
void set_horse( long long row, long long column, long long m, long long n, long long** b);
int main() {
long long m, n, hm, hn;
cin >> m >> n >> hm >> hn;
m++, n++;
long long** board = new long long* [m];
for ( long long i = 0; i < m; i++) {
board[i] = new long long[n];
for ( long long j = 0; j < n; j++) {
board[i][j] = 1;
if (i != 0 && j != 0) { board[i][j] = 0; }
}
}
board[0][0] = 1;
board[hm][hn] = -1;
set_horse(hm - 2, hn - 1, m, n, board);
set_horse(hm - 1, hn - 2, m, n, board);
set_horse(hm + 2, hn + 1, m, n, board);
set_horse(hm + 1, hn + 2, m, n, board);
set_horse(hm - 1, hn + 2, m, n, board);
set_horse(hm - 2, hn + 1, m, n, board);
set_horse(hm + 1, hn - 2, m, n, board);
set_horse(hm + 2, hn - 1, m, n, board);
for ( long long i = 1; i < m; i++) {
for ( long long j = 1; j < n; j++) {
if (board[i][j] == -1) { continue; }
board[i][j] = (board[i - 1][j] >= 0 ? board[i - 1][j] : 0) + (board[i][j - 1] >= 0 ? board[i][j - 1] : 0);
}
}
for ( long long i = 0; i < m; i++) {
for ( long long j = 0; j < n; j++) {
printf("%3lld ", board[i][j]);
}
cout << endl;
}
cout << board[m-1][n-1];
cin.get();
cin.get();
}
void set_horse( long long row, long long column, long long m, long long n, long long** b) {
if (row >= 0 && row < m && column >= 0 && column < n) {
b[row][column] = -1;
}
}
麻烦大佬看一下这几行代码,不明白错在哪里呜呜呜