Cod sursa(job #744609)

Utilizator andrey13Letcanu Andrei andrey13 Data 9 mai 2012 11:04:15
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>

using namespace std;

int a[100000],l[100000],i,n,max,j,k[100000];

int main(){
   freopen("scmax.in","r",stdin);
   freopen("scmax.out","w",stdout);
   scanf("%d",&n);
   for(i=1;i<=n;i++){scanf("%d",&a[i]);l[i]=1;}
   l[1]=1;
   for(i=2;i<=n;i++)
      for(j=i-1;j>0;j--)
      if(a[i]>a[j])
      if(l[i]<=l[j])l[i]=l[j]+1;

      max=0;
    for(i=1;i<=n;i++)if(l[i]>max)max=l[i];
    printf("%d\n",max);
    j=0;
    for(i=n;i>0;i--)if(l[i]==max){
      k[++j]=a[i];
        max--;
        if(max==0)break;}
    for(i=j;i>0;i--)  printf("%d ",k[i]);
        return 0;
}