Mai intai trebuie sa te autentifici.
Cod sursa(job #210271)
| Utilizator | Data | 27 septembrie 2008 10:06:48 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include<stdio.h>
long n,l,i,a[100001],q[100001],p[100001],f,j,kl,k,lp;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%ld",&n);
l=0;
for(i=1;i<=n;++i)
{scanf("%ld",&a[i]);
f=0;
for(j=1;j<=l;++j)
if(a[i]<=q[j])
{f=1;
q[j]=a[i];
p[++lp]=j;
break;
}
if(a[i]!=q[l])
if(!f)
{
q[++l]=a[i];
p[++lp]=l;
}
}
printf("%ld\n",l);
for(kl=lp;kl;--kl)if(p[kl]==l)break;
for(i=1;i<=l;++i)
{
for(k=kl;k;--k)if(p[k]==i)break;
printf("%ld ",a[k]);
kl=k;
}
printf("\n");
return 0;
}
