View Code of Problem 217

#include<stdio.h>
int step(int s[100][100],int i,int j){
	int a=0,b=0,c=0,d=0;
	if(s[i][j]<s[i][j+1]&&s[i][j]<s[i][j-1]&&s[i][j]<s[i+1][j]&&s[i][j]<s[i-1][j])
	   return 0;
	if(s[i][j-1]<s[i][j]) a=1+step(s,i,j-1);
	if(s[i][j+1]<s[i][j]) b=1+step(s,i,j+1);
	if(s[i+1][j]<s[i][j]) c=1+step(s,i+1,j);
	if(s[i-1][j]<s[i][j]) d=1+step(s,i-1,j);
	
	return   (a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d);
}
int main(){
	int m,n,i,j;
	scanf("%d %d",&m,&n);
	int a[100][100]={100};
	for(i=1;i<=m;i++){
		for(j=1;j<=n;j++){
			scanf("%d",&a[i][j]);
		}
	}
	int max=0;
	for(i=1;i<=m;i++){
		for(j=1;j<=n;j++){
			int t=step(a,i,j);
			if(t>max)
			   max=t;
		}
	}
	printf("%d\n",max);
}

Double click to view unformatted code.


Back to problem 217