Cod sursa(job #1000324)

Utilizator thewildnathNathan Wildenberg thewildnath Data 22 septembrie 2013 17:49:30
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int v[100002],s[100002],poz[100002],sol[100002];

int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    int n,i,aux,l=0;
    scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d",&v[i]);
    for(i=1;i<=n;++i)
    {
        aux=lower_bound(s+1,s+1+l,v[i])-s;
        poz[i]=aux;
        s[aux]=v[i];
        if(aux>l)
            l=aux;
    }
    aux=l;
    printf("%d\n",l);
    for(i=n;aux;--i)
        if(poz[i]==aux)
        {
            sol[aux]=v[i];
            --aux;
        }
    for(i=1;i<=l;++i)
        printf("%d ",sol[i]);
    printf("\n");
    return 0;
}