全WA和RE
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int vis[101][101], mapp[101][101], nx[9] = { 1,2,2,1,-1,-2,-2,-1 }, ny[9] = { 2,1,-1,-2,2,1,-1,-2 };
int n, m, mx, my;
void dfs(int x, int y, int s) {
if (mapp[x][y] != -1) mapp[x][y] = min(s, mapp[x][y]);
else mapp[x][y] = s;
for (int i = 0; i < 8; i++) {
int sx = x + nx[i];
int sy = y + ny[i];
if (sx >= 1 && sx <= n && sy >= 1 && sy <= m && vis[sx][sy] == 1) {
vis[sx][sy] = 0;
dfs(sx, sy, s + 1);
}
}
return;
}
int main() {
memset(mapp, -1, sizeof(mapp));
memset(vis, 1, sizeof(vis));
cin >> n >> m >> mx >> my;
dfs(mx, my, 0);
for (int i = 1; i <= n; i++) {
cout << mapp[i][1];
for (int j = 2; j <= m; j++) {
cout << setw(5) << mapp[i][j];
}
cout << endl;
}
return 0;
}