#include<iostream>
#include <cstring>
#include<queue>
using namespace std;
int n,m,x,y,ans[405][405];
const int dx[8]={-1,-1,-2,-2,1,1,2,2};
const int dy[8]={2,-2,-1,1,2,-2,-1,1};
bool vis[405][405];
inline bool ok(int xx,int yy){
return xx>=1&&xx<=n&&yy>=1&&yy<=m;
}
queue<int> qx,qy;
int main(){
cin>>n>>m>>x>>y;
qx.push(x);qy.push(y);
vis[1][1]=1;
while(!qx.empty()){
int nx=qx.front(),ny=qy.front();
qx.pop();qy.pop();
for(int i=0;i<8;i++){
int xx=nx+dx[i],yy=ny+dy[i];
if(ok(xx,yy)&&!vis[xx][yy]){
vis[xx][yy]=1;
qx.push(xx);qy.push(yy);
ans[xx][yy]=ans[nx][ny]+1;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%-5d",vis[i][j]?ans[i][j]:-1);
}
printf("\n");
}
return 0;
}
记录