#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define str string
struct node{
	int x,y;
};
queue<node> q;
int n,m,x,y;
int a[405][405];
const int dx[]={-2,2,-2,2,-1,-1,1,1},dy[]={1,1,-1,-1,-2,2,-2,2};
void bfs(){
	node front={x,y};
	q.push(front);
	a[x][y]=0;
	while(!q.empty()){
		node now=q.front();
		for(int i=0;i<8;i++){
			int tx=now.x+dx[i],ty=now.y+dy[i];
			if(tx<1||tx>n||ty<1||ty>m||a[tx][ty]!=-1)continue;
			q.push({tx,ty});
			a[tx][ty]=a[now.x][now.y]+1;
		}
		q.pop();
	}
}
int main(){
	ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin>>n>>m>>x>>y;
    memset(a,-1,sizeof(a));
    bfs();
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=n;j++){
    		cout<<left<<setw(5)<<a[i][j];
		}
		cout<<endl;
	}
	return 0;
}

1 条评论

  • 1