lxl_ @ 2018-11-05 09:12:01
#include<bits/stdc++.h>
using namespace std;
int n,m,f[105][105],fm[105][105]={0},imax,ans=1,sum=-1;
int dx[4]={0,0,1,-1},
dy[4]={1,-1,0,0};
int dfs(int x,int y)
{
int minx=x,miny=y,minf=100000;
for(int i=0;i<=3;i++)
{
int a=x+dx[i],b=y+dy[i];
if(a>=1&&a<=n&&b>=1&&b<=m&&!fm[a][b])
{
if(f[a][b]>f[x][y])
{
if(minf>f[a][b])
{
minf=f[a][b];
minx=a;
miny=b;
}
}
}
}
if(minx==x&&miny==y)
return ans;
else
{
fm[minx][miny]=1;
ans++;
dfs(minx,miny);
}
}
int main(){
scanf("%d%d",&n,&m);
if(n==0||m==0)
return 0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&f[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
ans=1;
sum=max(sum,dfs(i,j));
}
printf("%d\n",sum);
return 0;
}