#include<bits/stdc++.h>
using namespace std;
int n, m;
int a[10005][10005];
bool b[10005][10005];
int h,l;
void dfs(int h,int l,int cnt)
{
if(h<1||h>n||l<1||l>m||a[h][l]<=cnt&&a[h][l]!=-1)
return;
b[h][l]=1;
a[h][l]=cnt;
dfs(h+2,l+1,cnt+1);
dfs(h-2,l+1,cnt+1);
dfs(h+2,l-1,cnt+1);
dfs(h-2,l-1,cnt+1);
dfs(h+1,l+2,cnt+1);
dfs(h-1,l+2,cnt+1);
dfs(h+1,l-2,cnt+1);
dfs(h-1,l-2,cnt+1);
}
int main()
{
cin>>n>>m>>h>>l;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=-1;
dfs(h,l,0);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
return 0;
}
#8 T飞
求优化;
我还想挑衅大佬说DFS怎么了