int kuo(int s[7][7],int y[7][7],int i,int j) { int a,b,c,d,m,n; a=b=c=d=m=n=0; y[i][j]=1; if(s[i][j]>s[i+1][j] && s[i][j]>s[i-1][j] && s[i][j]>s[i][j+1] && s[i][j]>s[i][j-1]) return 0; else{ if(s[i][j]<s[i+1][j]) a=kuo(s,y,i+1,j)+1; if(s[i][j]<s[i-1][j]) b=kuo(s,y,i-1,j)+1; if(s[i][j]<s[i][j+1]) c=kuo(s,y,i,j+1)+1; if(s[i][j]<s[i][j-1]) d=kuo(s,y,i,j-1)+1; } m=a>b?a:b; n=c>d?c:d; return m>n?m:n; } int main() { int m,n,i,j,js,step=0; int s[7][7],y[7][7]; while(~scanf("%d",&n)) { scanf("%d",&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) { y[i][j]=0; scanf("%d",&s[i][j]); } for(i=0;i<=n+1;i++) { s[i][0]=0; s[i][m+1]=0; } for(i=1;i<=m;i++) { s[0][i]=0; s[n+1][i]=0; } for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(y[i][j]!=1) js=kuo(s,y,i,j); if(js>step) step=js; } printf("%d\n",step); } return 0; } |
Double click to view unformatted code.