View Code of Problem 17

#include<stdio.h>
int main(){
	int m,n,sr,sc,step=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;
				}
			}
		}
	}
	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]=-1;
			sc++;
		}
		else if(stair[sr][sc]==stair[sr][sc-1]-1){
			stair[sr][sc]=-1;
			sc--;
		}
		else if(stair[sr][sc]==stair[sr+1][sc]-1){
			stair[sr][sc]=-1;
			sr++;
		}
		else if(stair[sr][sc]==stair[sr-1][sc]-1){
			stair[sr][sc]=-1;
			sr--;
		}
		step++;
	}
	printf("%d",step);
} 

Double click to view unformatted code.


Back to problem 17