#include<bits/stdc++.h> using namespace std; int MAX;int a[300][300]; void dfs(int i,int j,int step){ if(a[i][j]<a[i+1][j]) dfs(i+1,j,step+1); if(a[i][j]<a[i-1][j]) dfs(i-1,j,step+1); if(a[i][j]<a[i][j+1]) dfs(i,j+1,step+1); if(a[i][j]<a[i][j-1]) dfs(i,j-1,step+1); if(step>MAX){ MAX=step; } } int main(){ int m,n; while(cin>>m>>n){ int i,j; MAX=-999; memset(a,0,sizeof(a)); for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ cin>>a[i][j]; } } for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ dfs(i,j,0); } } cout<<MAX<<endl; } return 0; } |
Double click to view unformatted code.