Cod sursa(job #568180)

Utilizator Viva12Ferentz Sergiu Viva12 Data 30 martie 2011 21:39:32
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
#include <algorithm>

int v[100], d[100], poz[100], n;

//
void citire()
{
    int i;
    freopen("scmax.in","r",stdin);
    scanf("%d",&n);
    for(i=1; i<=n; i++)
        scanf("%d",&v[i]);

}

//
void dinamica()
{
        int i, j, max, p;
        d[n]=1; poz[n]=0;

        for(i=n-1; i>=1; i--)
        {max=p=0;

            for(j=i+1; j<=n; j++)
            if(v[i]<v[j] && d[j]>max)
                {
                max=d[j];
                p=j;

                }

                d[i]=1+max;
                poz[i]=p;

        }
        p=1;
        for(i=2; i<=n; i++)
            if(d[i]==d[p])
            p=i;
                printf("%d\n",d[p]);
}


void afis(int p)
{
        if(p>0)
        {printf("%d ",v[p]);
        afis(poz[p]);
        }
}

//
int main()
{
citire();

dinamica();
afis(1);
return 0;
}