为什么只有60分,1 2 3 6WA,求助!
#include<bits/stdc++.h>
using namespace std;
int n,m,sx,sy;
int mp[5000][5000];
int xx[8]={2,1,1,2,-1,-1,-2,-2};
int yy[8]={1,2,-2,-1,2,-2,1,-1};
struct node{
int x,y,s;
};
int main()
{
cin>>n>>m>>sx>>sy;
memset(mp,-1,sizeof(mp));
queue<node>q;
q.push((node){sx,sy,0});
mp[sx][sy]=0;
while(!q.empty())
{
for(int i = 0;i < 8;i++)
{
int dx=q.front().x+xx[i];
int dy=q.front().y+yy[i];
if(dx >= 0&&dx <= n&&dy >= 0&&dy <= m&&mp[dx][dy] == -1)
{
q.push((node){dx,dy,q.front().s+1});
mp[dx][dy]=q.front().s+1;
}
}
q.pop();
}
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
printf("%-5d",mp[i][j]);
}
cout<<endl;
}
return 0;
}