Cod sursa(job #1223306)

Utilizator Eduard6421Eduard Gabriel Eduard6421 Data 26 august 2014 18:51:32
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;;
int v[10001],p[10001],q[10001],sol[10001];
int main ()
{ freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout); 
int n,i,nq,*it,poz,lis;
scanf("%d",n);
for(i=1;i<=n;i++)
    scanf("%d",&V[i]);
nq=1;q[1]=v[1];p[1]=1;
for(i=2;i<=n;i++)
{ it= upper_bound(q+1,q+nq+1,v[i]);
    poz=(int)(it-q);
 if(poz>nq)
 { ++nq;
 }
 q[poz]=v[i];
 p[i]=poz;
}
printf("%d\n",nq);
lis=nq;
poz=n;
for(i=lis;i>0;i--)
{ while(p[poz]!=lis)
    poz--;
    sol[lis]=v[poz];
    lis--;
}
for(i=1;i<=nq;i++)
    printf(n%d ",sol[i]);
}