Cod sursa(job #314415)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 11 mai 2009 20:00:56
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<fstream.h>
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100001],i,j,l[100001],d[100001],max,p,n;
int main()
{ f>>n;
  for(i=1;i<=n;i++) f>>a[i];
  l[n]=1;
  d[n]=-1;
  max=1;
  p=n;
  for(i=n-1;i>=1;--i) { l[i]=1;
                        d[i]=-1;
                        for(j=i+1;j<=n;j++) if(a[i]<a[j]&&l[i]<l[j]+1)
                                             { l[i]=l[j]+1;
                                               d[i]=j;
                                               if(l[i]>max) max=l[i],p=i;
                                             }
                      }
   g<<max<<"\n";                   
  while(p!=-1) { g<<a[p]<<" ";
                 p=d[p];
               }
  f.close();
  g.close();
  return 0;
}