提示WA后,我把数据下载了下来自己运行之后,发现我的结果和官方给的结果一样,为什么WA了?
#include<bits/stdc++.h>
using namespace std;
#define N 410
#define x first
#define y second
typedef pair<int,int> PII;
int n,m,x,y;
int g[N][N];
void bfs(PII start){
queue<PII> q;
q.push(start);
g[start.x][start.y]=0;
int dx[8]={2,1,-2,-1,2,1,-2,-1},dy[8]={1,2,1,2,-1,-2,-1,-2};
while(q.size()){
PII t=q.front();
q.pop();
for(int i=0;i<8;i++){
int tx=t.x+dx[i],ty=t.y+dy[i];
if(tx<1||tx>n||ty<1||ty>m) continue;
if(g[tx][ty]!=-1) continue;
g[tx][ty]=g[t.x][t.y]+1;
q.push({tx,ty});
}
}
}
int main(){
cin>>n>>m>>x>>y;
PII start;
start={x,y};
memset(g,-1,sizeof(g));
bfs(start);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<g[i][j]<<" ";
}
cout<<endl;
}
return 0;
}