ylzxbcyy @ 2024-01-27 18:40:43
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=105;
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int f[N][N]={0};
int high[N][N];
int xx,yy;
int m,n;
int dfs(int x,int y)
{if(f[x][y])return f[x][y];
f[x][y]=1;
for(int i=0;i<4;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(high[xx][yy]<high[x][y]&&xx>=1&&xx<=m&&yy>=1&&yy<=n){
dfs(xx,yy);
f[x][y]=max(f[x][y],f[xx][yy]+1);
}
}
return f[x][y];
}
int main()
{int cnt=0;
cin>>m>>n;
for(int i=1;i<=m;i++)
{
for(int p=1;p<=n;p++)
{
cin>>high[i][p];
}
}
for(int i=1;i<=m;i++)
{
for(int p=1;p<=n;p++)
{
cnt=max(cnt,dfs(i,p));
}
}
cout<<cnt;
}