#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,ans,vis[405][405];
int dx[8]={-2,-2,-1,1,2,2,1,-1},dy[8]={-1,1,2,2,1,-1,-2,-2};
struct node{
int x,y,step;
};
queue<node>q;
int bfs(){
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
vis[i][j]=-1;
q.push((node){x,y,0});
vis[x][y]=0;
while (!q.empty()){
node n1=q.front();
q.pop();
for (int i=0;i<8;i++){
int xx=n1.x+dx[i],yy=n1.y+dy[i];
if (vis[xx][yy]==-1){
q.push((node){xx,yy,n1.step+1});
vis[xx][yy]=n1.step+1;
}
}
}
return -1;
}
int main(){
bfs();
cin>>n>>m>>x>>y;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++)
printf("%-5d",vis[i][j]);
cout<<"\n";
}
return 0;
}
这代码输出全是0,求助大佬