Pagini recente » Cod sursa (job #1258165) | Cod sursa (job #1290428) | Cod sursa (job #1041498) | Cod sursa (job #15819) | Cod sursa (job #334249)
Cod sursa(job #334249)
#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;
}