#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y;
int step;
}s;
int vis[405][405];
int n,m;
int dir[8][2]={-2,-1,-2,1,-1,-2,-1,2,1,-2,1,2,2,-1,2,1};
queue<node>que;
void bfs(){
s.step=0;
que.push(s);
vis[s.x][s.y]=0;
while(!que.empty())
{
node Now=que.front();
que.pop();
for(int i=0;i<8;i++)
{
node f;
f.x=Now.x+dir[i][0];
f.y=Now.y+dir[i][0];
f.step=Now.step+1;
if(f.x>=1&&f.x<=n&&f.y>=1&&f.y<=m&&vis[f.x][f.y]==-1)
{
vis[f.x][f.y]=f.step;
que.push(f);
}
}
}
}
int main()
{
cin>>n>>m;
cin>>s.x>>s.y;
memset(vis,-1,sizeof(vis));
bfs();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<vis[i][j]<<" ";
}
cout<<endl;
}
}
这段时间做挂了一堆题QAQ