Cod sursa(job #210268)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 27 septembrie 2008 09:51:09
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 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]);
    }
 printf("\n");
 return 0;
}