是算法不够优化吗
#include <bits/stdc++.h>
using namespace std;
int n,m,r[405][405],f[8][2]={{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,1},{-1,2}};
void fuc(int x1,int y1){
int x,y;
for(int i=0;i<8;i++){
x=x1+f[i][0],y=y1+f[i][1];
if(x>=1&&y>=1&&x<=n&&y<=m){
if(r[x][y]>r[x1][y1]+1){
r[x][y]=r[x1][y1]+1;
fuc(x,y);
}
}
}
}
int main() {
int x,y;
cin >> n>>m>>x>>y;
for(int i =1;i<=n;i++){
for(int j =1;j<=m;j++){
r[i][j]=1e8;
}
}
r[x][y]=0;
fuc(x,y);
for(int i =1;i<=n;i++){
for(int j =1;j<=m;j++){
if(r[i][j]==1e8)
r[i][j]=-1;
cout <<r[i][j]<<" ";
}
cout<<endl;
}
return 0;
}