View Code of Problem 17

#include<iostream>
using namespace std;
int f(int a[100][100],int i,int j)
{
	int b=0,c=0,d=0,e=0;
	if(a[i][j]<a[i-1][j])
		b=f(a,i-1,j)+1;
	if(a[i][j]<a[i+1][j])
		c=f(a,i+1,j)+1;
	if(a[i][j]<a[i][j-1])
		d=f(a,i,j-1)+1;
	if(a[i][j]<a[i][j+1])
		e=f(a,i,j+1)+1;
	return (b>c?b:c)>(d>e?d:e)?(b>c?b:c):(d>e?d:e);
}
int main()
{
	int n,m;
	while(cin>>n>>m)
	{
		int a[100][100]={0};
		for(int i=1;i<n+1;i++)
			for(int j=1;j<m+1;j++)
				cin>>a[i][j];
		int b=0;
		for(int i=1;i<n+1;i++)
		{
			for(int j=1;j<m+1;j++)
			{
				if( f(a,i, j) > b)
					b=f(a,i,j);
			}
		}
		cout<<b<<endl;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 17