43 lines
715 B
C++
43 lines
715 B
C++
#include<cstdio>
|
|
#include<cstring>
|
|
const int dx[4]={-1,0,1,0};
|
|
const int dy[4]={0,-1,0,1};
|
|
int m[102][102];
|
|
int f[102][102];
|
|
int r,c;
|
|
int search(int x,int y)
|
|
{
|
|
if (f[x][y]) return f[x][y];
|
|
int t=1;
|
|
for (int i=0;i<4;i++)
|
|
{
|
|
int nx=x+dx[i];
|
|
int ny=y+dy[i];
|
|
if (m[x][y]<m[nx][ny])
|
|
{
|
|
int tmp=search(nx,ny)+1;
|
|
if (tmp>t) t=tmp;
|
|
}
|
|
}
|
|
f[x][y]=t;
|
|
return t;
|
|
}
|
|
int main(void)
|
|
{
|
|
memset(m,0xff,sizeof(m));
|
|
scanf("%d%d",&r,&c);
|
|
for (int i=1;i<=r;i++)
|
|
for (int j=1;j<=c;j++)
|
|
scanf("%d",&m[i][j]);
|
|
int ans=0;
|
|
for (int i=1;i<=r;i++)
|
|
for (int j=1;j<=c;j++)
|
|
{
|
|
f[i][j]=search(i,j);
|
|
ans=f[i][j]>ans?f[i][j]:ans;
|
|
}
|
|
printf("%d\n",ans);
|
|
return 0;
|
|
}
|
|
|
|
|