wa了6个,求改!!!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m;
ll sx,sy;
bool vis[405][405]={};
ll a[405][405]={};
int fx[8]={-1,-2,-2,-1,1,2,2,1};
int fy[8]={2,1,-1,-2,2,1,-1,-2};
struct data{
ll x,y;
};
void bfs(){
queue<data> q;
q.push({sy,sx});
vis[sx][sy]=true;
a[sx][sy]=0;
while (q.size()){
data t=q.front();
q.pop();
int x=t.x,y=t.y;
for (int i=0;i<8;i++){
int nx=x+fx[i],ny=y+fy[i];
if (nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]){
q.push({nx,ny});
vis[nx][ny]=true;
a[nx][ny]=a[x][y]+1;
}
}
}
}
int main(){
cin >> n >> m >> sx >> sy;
memset(a,-1,sizeof(a));
bfs();
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cout << setw(5) << a[i][j];
}
printf("\n");
}
return 0;
}