#include <stdio.h> int max(int a,int b,int c,int d){ int max = a; max = max>b?max:b; max = max>c?max:c; max = max>d?max:d; return max; } int fun(int a[][1000],int n,int m,int i,int j){ int left=0,right=0,up=0,down=0; if(i-1>=0&&a[i][j]<a[i-1][j]){ left = 1 + fun(a,n,m,i-1,j); } if(i+1<n&&a[i][j]<a[i+1][j]){ right = 1 + fun(a,n,m,i+1,j); } if(j-1>=0&&a[i][j]<a[i][j-1]){ up = 1 + fun(a,n,m,i,j-1); } if(j+1<m&&a[i][j]<a[i][j+1]){ down = 1 + fun(a,n,m,i,j+1); } return max(left,right,up,down); } int main(){ int n,m; while(scanf("%d %d",&n,&m)!=EOF){ int a[n][1000]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ scanf("%d",&a[i][j]); } } int max = 0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(max<fun(a,n,m,i,j)){ max = fun(a,n,m,i,j); } } } printf("%d\n",max); } } |
Double click to view unformatted code.