View Code of Problem 17

#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]);
			}
		}
	}
	for(int i=1;i<m+1;i++){
		for(int j=1;j<n+1;j++){
			sr=i;
			sc=j;
			step=0;
			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++;
			}
			printf("%d\n",step);
			if(step>max){
				max=step;
			}
		}
	}
	printf("%d",max);
} 

Double click to view unformatted code.


Back to problem 17