Cod sursa(job #409685)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 3 martie 2010 19:59:20
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
int v[10000],n,i,L[1000],max,mx,k,t;

int main(){
fstream fi("scmax.in",ios::in);
fstream fo("scmax.out",ios::out);
for(i=1;i<=n;i++) fi>>v[i];
L[n]=1; //subsir maxim de lung 1
for(k=n-1;k>0;k--)
   {mx=0;
   for(i=k+1;i<=n;i++)
      if(v[i]>=v[k] && L[i]>mx) 
         mx=L[i]; 
   L[k]=mx+1;  
   if(L[k]>max) 
      {max=L[k];
      t=k;} 
   }
fo<<max<<" ";
//afisarea subsirului
fo<<v[t]<<" ";
for(i=t+1;i<=n;i++)
  if ((v[i]>=v[t]) && (L[i]==max-1))
     {fo<<v[i]<<" ";
     max--;}
fo.close();
return 0;
}