Mai intai trebuie sa te autentifici.

Cod sursa(job #334249)

Utilizator aladinaladin aladinn aladin 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;  
}