Cod sursa(job #952615)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 23 mai 2013 18:57:43
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
#include<algorithm>
using namespace std;
const int INF = (1<<31)-1;
const int NMAX = 100005;
int n,i,x,poz,Q[NMAX],P[NMAX],V[NMAX],S[NMAX],sol;
int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&V[i]); x=V[i]; Q[i]=INF;
        poz=lower_bound(Q+1,Q+i+1,x)-Q;
        Q[poz]=x; P[i]=poz;
        sol=max(sol,poz);
    }
    printf("%d\n",sol);
    for(poz=sol,i=n;i && poz;i--)
        if(P[i]==poz) S[poz--]=V[i];
    for(i=1;i<=sol;i++) printf("%d ",S[i]);
    return 0;
}