#include<iostream> using namespace std; int f(int a[100][100],int i,int j) { int b=0,c=0,d=0,e=0; if(a[i][j]<a[i-1][j]) b=f(a,i-1,j)+1; if(a[i][j]<a[i+1][j]) c=f(a,i+1,j)+1; if(a[i][j]<a[i][j-1]) d=f(a,i,j-1)+1; if(a[i][j]<a[i][j+1]) e=f(a,i,j+1)+1; return (b>c?b:c)>(d>e?d:e)?(b>c?b:c):(d>e?d:e); } int main() { int n,m; while(cin>>n>>m) { int a[100][100]={0}; for(int i=1;i<n+1;i++) for(int j=1;j<m+1;j++) cin>>a[i][j]; int b=0; for(int i=1;i<n+1;i++) { for(int j=1;j<m+1;j++) { if( f(a,i, j) > b) b=f(a,i,j); } } cout<<b<<endl; } return 0; } |
Double click to view unformatted code.