#include<stdio.h> int main(){ int m,n,sr,sc,step=0,max=0; scanf("%d%d",&m,&n); int stair[m+2][n+2],min=9999; for(int i=0;i<m+2;i++){ for(int j=0;j<n+2;j++){ if(i==0||i==m+1||j==0||j==n+1){ stair[i][j]=-9999; } else{ scanf("%d",&stair[i][j]); if(stair[i][j]<min){ min=stair[i][j]; sr=i; sc=j; } } } } for(int sr=1;sr<m+1;sr++){ for(int sc=1;sc<n+1;sc++){ while(stair[sr][sc]==stair[sr][sc+1]-1||stair[sr][sc]==stair[sr][sc-1]-1||stair[sr][sc]==stair[sr+1][sc]-1||stair[sr][sc]==stair[sr-1][sc]-1){ if(stair[sr][sc]==stair[sr][sc+1]-1){ stair[sr][sc]=-9999; sc++; } else if(stair[sr][sc]==stair[sr][sc-1]-1){ stair[sr][sc]=-9999; sc--; } else if(stair[sr][sc]==stair[sr+1][sc]-1){ stair[sr][sc]=-9999; sr++; } else if(stair[sr][sc]==stair[sr-1][sc]-1){ stair[sr][sc]=-9999; sr--; } step++; } if(step>max){ max=step; } } } printf("%d",max); } |
Double click to view unformatted code.