#include<bits/stdc++.h>
using namespace std;
int b,e=2,a[410][410],pro[410*410][2],dx[8]={2,-2,2,-2,-1,1,-1,1},dy[8]={1,1,-1,-1,2,2,-2,-2},n,m,x,y;
int main()
{
cin>>n>>m>>x>>y;
memset(a,0xff,sizeof(a));
pro[1][0]=x;
pro[1][1]=y;
a[x][y]=0;
while(b++<e-1)
{
for(int i=0;i<8;i++)
{
int nx=pro[b][0]+dx[i];
int ny=pro[b][1]+dy[i];
if(nx>0&&ny>0&&nx<=n&&ny<=m&&a[nx][ny]==-1)
pro[e][0]=nx,
pro[e++][1]=ny,
a[nx][ny]=a[pro[b][0]][pro[b][1]]+1;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
有人能解释一下变量e是什么吗以及while(b++<e-1)?