DFS为什么不输出???(没超时)
#include<iostream>
using namespace std;
int map[410][410];
bool f[410][410];
int n,m,x,y;
void dfs(int i,int j,int s){
map[i][j]=s;
if(i-1>=1&&j-2>=1&&f[i-1][j-2]==0)dfs(i-1,j-2,s+1);
if(i-2>=1&&j-1>=1&&f[i-2][j-1]==0)dfs(i-2,j-1,s+1);
if(i-2>=1&&j+1<=m&&f[i-2][j+1]==0)dfs(i-2,j+1,s+1);
if(i-1>=1&&j+2<=m&&f[i-1][j+2]==0)dfs(i-1,j+2,s+1);
if(i+1<=n&&j+2<=m&&f[i+1][j+2]==0)dfs(i+1,j+2,s+1);
if(i+2<=n&&j+1<=m&&f[i+2][j+1]==0)dfs(i+2,j+1,s+1);
if(i+2<=n&&j-1>=1&&f[i+2][j-1]==0)dfs(i+2,j-1,s+1);
if(i+1<=n&&j-2>=1&&f[i+1][j-2]==0)dfs(i+1,j-2,s+1);
return ;
}
int main(){
cin>>n>>m>>x>>y;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
map[i][j]=-1;
dfs(x,y,0);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<map[i][j]<<' ';
}
cout<<endl;
}
return 0;
}