Mai intai trebuie sa te autentifici.
Cod sursa(job #334249)
Utilizator | Data | 25 iulie 2009 17:23:02 | |
---|---|---|---|
Problema | Subsir 2 | Scor | 45 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<stdio.h>
#include<algorithm>
using namespace std;
long n,lq,i,a[100050],q[100050],v[100050],m;
long* p;
int main()
{
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
scanf("%ld",&n);
lq=0;
for(i=1;i<=n;++i)
{scanf("%ld",&a[i]);
p=lower_bound(q,q+lq,a[i]);
if(q[p-q]<a[i])++p;
q[p-q]=a[i];
v[i]=p-q;
if(p-q>lq)lq++;}
m=lq;
printf("%ld\n",m);
for(i=n;i&&m;--i)
if(v[i]==m){q[m]=i;--m;}
for(i=1;i<=lq;++i)
printf("%ld ",q[i]);
printf("\n");
return 0;
}