Cod sursa(job #304185)

Utilizator sorin2009Sfechis Sorin sorin2009 Data 11 aprilie 2009 11:11:23
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb

#include<fstream.h>

int l[100001],poz[100001];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
    int n,a[100001],k,j,i;
    fin>>n;
    for(i=1;i<=n;i++)
    {fin>>a[i];l[i]=1;}
   
    
    //****am construit vectorii l si poz
    int aux;
    int max=0,start=0;
    for(k=n-1;k>=1;k--)
     {aux=a[k];
     for(j=n;j>k;j--)
     if(aux<a[j])
      if(l[j]+1>l[k])
       {l[k]=l[j]+1;
        poz[k]=j;}
     
       if (l[k]>max)
     {max=l[k];
      start=k;}
       
       } 

  
      

fout<<max<<"\n";
   //*****afisare incepand de la poz_max
   i=start;
   do
   { fout<<a[i]<<" ";
    i=poz[i];
}while (i!=0);
             

    fin.close();
    fout.close();
    return 0;
}