#include<bits/stdc++.h>
using namespace std;
bool vis[405][405];
int a[405][405];
int dx[8]={-1,-2,-2,-1,1,2,2,1};
int dy[8]={2,1,-1,-2,-2,-1,1,2};
int n,m,x,y;
struct oo{
int x,y;
};
queue<oo>q;
int main(){
ios::sync_with_stdio(false);
cin>>n>>m>>x>>y;
vis[x][y]=true;
q.push({x,y});
while(!q.empty()){
oo nw=q.front();
q.pop();
for(int i=0;i<8;i++){
int nx=nw.x+dx[i];
int ny=nw.y+dy[i];
if(!(1<=nx&&nx<=n&&1<=ny&&ny<=m&&vis[nx][ny]==0))continue;
vis[nx][ny]=true;
q.push({nx,ny});
a[nx][ny]=a[nw.x][nw.y]+1;
}
}
int u=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==x&&j==y)printf("%-5d",u);
else if(a[i][j]==0)printf("%-5d",-1);
else printf("%-5d",a[i][j]);
}
cout<<endl;
}
}
为什么我把最后输出的endl改为printf("\n");就能从50分变成AC?