#include<stdio.h> int step(int s[105][105],int i,int j){ int a=0,b=0,c=0,d=0; if(s[i][j]<s[i][j+1]&&s[i][j]<s[i][j-1]&&s[i][j]<s[i+1][j]&&s[i][j]<s[i-1][j]) return 0; if(s[i][j-1]<s[i][j]) a=1+step(s,i,j-1); if(s[i][j+1]<s[i][j]) b=1+step(s,i,j+1); if(s[i+1][j]<s[i][j]) c=1+step(s,i+1,j); if(s[i-1][j]<s[i][j]) d=1+step(s,i-1,j); return (a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d); } int main(){ int m,n,i,j; scanf("%d %d",&m,&n); int a[105][105]={100}; for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ scanf("%d",&a[i][j]); } } int max=0; for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ int t=step(a,i,j); if(t>max) max=t; } } printf("%d\n",max); } |
Double click to view unformatted code.