fanfanfan115 @ 2022-03-26 12:36:35
#include <iostream>
using namespace std;
int r,c,mx,my,a[101][101],ans,Next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void dfs(int x,int y,int step)
{
ans=max(ans,step);
int tx,ty,k,flag=0,maxx=0;
for(k=0;k<=3;k++)
{
tx=x+Next[k][0];
ty=y+Next[k][1];
if(tx<1||tx>r||ty<1||ty>c) continue;
if(a[tx][ty]<a[x][y]&&a[tx][ty]>maxx)
{
maxx=a[tx][ty];
mx=tx,my=ty;
flag=1;
}
}
if(flag==1)
dfs(mx,my,step+1);
}
int main()
{
cin>>r>>c;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>a[i][j];
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
dfs(i,j,1);
cout<<ans;
return 0;
}