Cod sursa(job #1785905)

Utilizator Vlad1111Sbengheci Vlad-Andrei Vlad1111 Data 22 octombrie 2016 09:30:49
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <cstdio>

using namespace std;

int a[100001],n;
int d[100001];
int p[100001];

void afisare(int k)
{
    if(p[k]!=0)
        afisare(p[k]);
    printf("%d ",a[k]);
}

int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);

    scanf("%d",&n);
    for(int i=0; i<n; i++)
        scanf("%d",&a[i]);

        int m=0;
    for(int i=0; i<n; i++)
        for(int j=0; j<i; j++)
        {
            if(a[i]>a[j])
                if(d[i]<d[j]+1)
                    {
                        d[i]=d[j]+1;
                        p[i]=j;
                        if(d[i]>d[m])
                            m=i;
                    }
        }

    printf("%d\n",d[m]+1);
    afisare(m);

    ///for(int i=0;i<n;i++)
    ///    cout<<p[i]<<" ";
    return 0;
}