Cod sursa(job #148971)

Utilizator bacerandreiBacer Andrei bacerandrei Data 5 martie 2008 09:33:43
Problema Subsir 2 Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream.h>
long long pred[5000];
long long a[5000],v[5000],n,imax;
ifstream f("subsir2.in");
ofstream g( "subsir2.out");


void citire()
{
  f>>n;
   for(int i=0;i<n;i++)
    f>>a[i];
}


void reconstituie(int i)
{
  if(pred[i]+1)
   reconstituie(pred[i]);
  g<<a[i]<<" ";
}


void prelucreaza()
{
  int i,j;
  v[0]=1;
  imax=0;
  pred[0]=-1;
   for(i=1;i<n;i++)
    {
     v[i]=1;
     pred[i]=-1;
      for(j=0;j<i;j++)
       if(a[j]<=a[i]&&v[j]+1>v[i])
	{
	 v[i]=v[j]+1;
	 pred[i]=j;
	}
      if(v[i]>=imax)
       imax=i;
    }
}


void afisare()
{
  g<<v[imax]<<"\n";
  reconstituie(imax);
}


int main()
{
  ifstream f("subsir2.in");
  ofstream g("subsir2.out");
   citire();
   prelucreaza();
   afisare();
 return 0;
}