View Code of Problem 17

int kuo(int s[10][10],int y[10][10],int i,int j)
{
    int a,b,c,d;
    a=b=c=d=0;
    y[i][j]=1;
    if(s[i][j]>s[i+1][j] && s[i][j]>s[i-1][j] && s[i][j]>s[i][j+1] && s[i][j]>s[i][j-1])
        return 0;
    else{
        if(s[i][j]<s[i+1][j]) a=kuo(s,y,i+1,j)+1;
        if(s[i][j]<s[i-1][j]) b=kuo(s,y,i-1,j)+1;
        if(s[i][j]<s[i][j+1]) c=kuo(s,y,i,j+1)+1;
        if(s[i][j]<s[i][j-1]) d=kuo(s,y,i,j-1)+1;
    }
    return (a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d);
}

int main()
{
    int m,n,i,j,js,step=0;
    int s[10][10],y[10][10];
    while(~scanf("%d",&n))
    {
        scanf("%d",&m);
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            y[i][j]=0;
            scanf("%d",&s[i][j]);
        }
        for(i=0;i<=n+1;i++)
        {
            s[i][0]=0;
            s[i][m+1]=0;
        }
        for(i=1;i<=m;i++)
        {
            s[0][i]=0;
            s[n+1][i]=0;
        }
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {
                if(y[i][j]!=1) js=kuo(s,y,i,j);
                if(js>step) step=js;
            }
        printf("%d\n",step);
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 17