rt,应该是有个小问题,调不出来qwq
#include <bits/stdc++.h>
using namespace std;
unsigned long long int gcd(unsigned long long int a,unsigned long long int b)
{
return b ? gcd(b,a%b) : a;
}
unsigned long long int lcm(unsigned long long int a,unsigned long long int b)
{
return a*b/gcd(a,b);
}
int n,m,x,y;
int a[405][405];
bool f[405][405];
void dfs(int nowx,int nowy,int now)
{
if(nowx>n||nowx<=0||nowy>m||nowy<0||f[nowx][nowy]==1)
{
}else{
a[nowx][nowy]=min(now,a[nowx][nowy]);
if(a[nowx][nowy]==-1)
{
a[nowx][nowy]=now;
}
f[nowx][nowy]=1;
dfs(nowx+1,nowy+2,now+1);
dfs(nowx+1,nowy-2,now+1);
dfs(nowx-1,nowy+2,now+1);
dfs(nowx-1,nowy-2,now+1);
dfs(nowx+2,nowy+1,now+1);
dfs(nowx+2,nowy-1,now+1);
dfs(nowx-2,nowy+1,now+1);
dfs(nowx-2,nowy-1,now+1);
}
}
int main()
{
std::ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m>>x>>y;
memset(a,-1,sizeof(a));
f[x][y]=0;
dfs(x,y,0);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}