#include <iostream> #include <cstring> #include <algorithm> using namespace std; int dfs(int a[20][20],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(c2,max(c3,c4))); } int main(){ int m,n; int a[20][20]={0}; while(cin>>m>>n){ for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; int max0=0; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++){ int cnt=dfs(a,i,j,0); max0=max(max0,cnt); } cout<<max0<<endl; } } |
Double click to view unformatted code.