#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a,map[101][101],r,c;
char st[200];
int dfs(int i,int g,int length){
int a=0,b=0,c=0,d=0;
if (i>0 && map[i-1][g]<map[i][g]) a=dfs(i-1,g,length+1);
if (i<r-1 && map[i+1][g]<map[i][g]) b=dfs(i+1,g,length+1);
if (g>0 && map[i][g-1]<map[i][g]) c=dfs(i,g-1,length+1);
if (g>c-1 && map[i][g+1]<map[i][g]) d=dfs(i,g+1,length+1);
if (a||b||c||d){
return max(a,b)>max(c,d)? max(a,b): max(c,d);
}else return length;
}
int main(void)
{
scanf("%d",&a);
while(a--){
int maxx=0,tmp=0;
scanf("%s%d%d",st,&r,&c);
for(int i=0;i<r;i++)
for(int g=0;g<c;g++)
scanf("%d",&map[i][g]);
for(int i=0;i<r;i++)
for(int g=0;g<c;g++){
tmp=dfs(i,g,1);
if (tmp>maxx) maxx=tmp;
}
printf("%s: %d\n",st,maxx);
}
return 0;
}
如題,請大神指教<(_ _)>
小弟檢查好幾次還是找不到錯誤