Cod sursa(job #1114127)

Utilizator abel1090Abel Putovits abel1090 Data 21 februarie 2014 12:00:25
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
///SCMAX
#include<fstream>
#include<vector>
using namespace std;

int main()
{
   ifstream fin("scmax.in");
   ofstream fout("scmax.out");

   int N, max_lnght=0, max_i;
   ///unsigned long data[5];
   ///int lnght[5]={0, 0, 0, 0, 0};

   fin>>N;

   vector<int> lnght(N, 0);
   vector<unsigned long> data(N);

   for(int i=0; i<N; i++)
       fin>>data[i];

   lnght[N-1]=1;

   for(int i=N-2; i>=0; i--)
   {
       ///max_i=i;
       for(int j=i+1; j<N; j++)
           if(data[i]<data[j])
               if(lnght[j]>max_lnght || (lnght[j]==0 && max_lnght==0))
               {
                   lnght[i]=lnght[j]+1;
                   max_lnght=lnght[j];
                   ///max_i=j;
               }
       max_lnght=0;
   }

   for(int i=0; i<N; i++)
       if(lnght[i]>max_lnght)
       {
           max_lnght=lnght[i];
           max_i=i;
       }

   fout<<max_lnght<<'\n';
   fout<<data[max_i]<<' ';

   for(int i=max_i+1; i<N; i++)
       if(lnght[i]==lnght[max_i]-1 && lnght[max_i]-1!=0)
       {
           fout<<data[i]<<' ';
           max_i=i;
       }

   return 0;
}