Pagini recente » Cod sursa (job #2270422) | Cod sursa (job #2974788) | Cod sursa (job #2309680) | Cod sursa (job #27581) | Cod sursa (job #744680)
Cod sursa(job #744680)
#include <cstdio>
#define MAX 100010
int n,V[MAX],C[MAX],nr;
int cbinar(int x){
int l=1,r=nr+1,md;
while(l<r){
md=(l+r)/2;
if(V[md]>=x)r=md; else l=md+1;
}
if(r>nr)nr=r;
return r;
}
void tipar(int pos,int nr){
for(int i=pos;i>=0;i--)
if(C[i]==nr){
tipar(i,nr-1);
printf("%d ",V[i]);
return; }
}
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&V[i]);
for(int i=0;i<n;i++)C[i]=cbinar(V[i]);
// for(int i=0;i<n;i++)printf("%d ",C[i]);
printf("%d\n",nr);
tipar(n,nr);
}
// o sortare