#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int maxn = 110;
int row,col;
int map[maxn][maxn];
int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int res[maxn][maxn];
int research(int r, int c){
int ans = 1;
if(res[r][c] != 0)
return res[r][c];
int temp;
for(int i = 0; i < 4; ++i){
if(r+dir[i][0]>=1 && r+dir[i][0]<=row && c+dir[i][1]>=1 && c+dir[i][1]<=col && map[r][c]<map[r+dir[i][0]][c+dir[i][1]]){
temp = research(r+dir[i][0],c+dir[i][1]);
if(temp + 1 > ans)
ans = temp + 1;
}
}
return res[r][c] = ans;
}
int main()
{
int cas;
scanf("%d",&cas);
while(cas--){
char s[20];
scanf("%s %d %d",s,&row,&col);
memset(res,0,sizeof(res));
for(int i = 1; i <= row; ++i)
for(int j = 1; j <= col; ++j)
scanf("%d",&map[i][j]);
int t,MAX = 0;
for(int i= 1; i <= row; ++i)
for(int j = 1; j <= col; ++j)
if((t = research(i,j) )> MAX)
MAX = t;
printf("%s: %d\n",s,MAX);
}
return 0;
}
uva10285
最新推荐文章于 2018-12-05 21:24:43 发布