#include <iostream> #include <cstring> #include <algorithm> using namespace std; int dfs(int a[102][102],int i,int j,int cnt){ int c1=cnt,c2=cnt,c3=cnt,c4=cnt; if(a[i+1][j]<a[i][j]){c1=dfs(a,i+1,j,cnt+1);} if(a[i][j+1]<a[i][j]){c2=dfs(a,i,j+1,cnt+1);} if(a[i-1][j]<a[i][j]){c3=dfs(a,i-1,j,cnt+1);} if(a[i][j-1]<a[i][j]){c4=dfs(a,i,j-1,cnt+1);} return max(c1,max(max(c2,c3),c4)); } int main(){ int m,n; int a[102][102]={0}; cin>>m>>n; memset(a,0,sizeof(a)); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; int max=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ int cnt=dfs(a,i,j,0); if(cnt>max) max=cnt; } cout<<max<<endl; } |
Double click to view unformatted code.