Cod sursa(job #1785921)

Utilizator Vlad1111Sbengheci Vlad-Andrei Vlad1111 Data 22 octombrie 2016 09:40:04
Problema Subsir crescator maximal Scor 70
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]-1);
    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])
                    {
                        d[i]=d[j]+1;
                        p[i]=j+1;
                        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;
}