深度优先搜索--宝藏 c语言

#include<stdio.h>
#include<string.h>
int a,b,X,n,m;
int x[1000][1000];
int sign[1000][1000];
int ans=0;
int max(int x, int y)
{
if(x>=y){return x;}
if(y>=x){return y;}
}
void dfs(int x0,int y0,int X)
{

if(sign[x0][y0]==1||x0>n||x0<1||y0>m||y0<1||x[x0][y0]==-1||X==0){return 0;}
else
{ans=max(x[x0][y0],ans);
sign[x0][y0]=1;
dfs(x0-1,y0,X-1);
dfs(x0,y0-1,X-1);
dfs(x0+1,y0,X-1);
dfs(x0,y0+1,X-1);
}
}
int main()
{
scanf("%d %d %d %d %d",&n,&m,&a,&b,&X);
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&x[i][j]);
sign[i][j]=0;
}
}
dfs(a,b,X+1);
printf("%d",ans);
return 0;
}

posted @ 2022-04-02 21:48  墨燃云  阅读(103)  评论(0编辑  收藏  举报