View Code of Problem 17

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<map>
#include<string>
#include<set>
using namespace std;
int a[1000][1000];
int ans;
int n,m;
void dfs(int i,int j,int sum)
{

    if(a[i+1][j]>a[i][j])dfs(i+1,j,sum+1);
    if(a[i][j+1]>a[i][j])dfs(i,j+1,sum+1);
    if(a[i-1][j]>a[i][j])dfs(i-1,j,sum+1);
    if(a[i][j-1]>a[i][j])dfs(i,j-1,sum+1);
    ans=max(sum,ans);
}
int main(){
    while(cin>>n>>m){
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
                cin>>a[i][j];
        }
        ans=0;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
                dfs(i,j,0);
        }
        cout<<ans<<endl;
    }
    return 0;
}
/*


*/

Double click to view unformatted code.


Back to problem 17