Cod sursa(job #1199614)

Utilizator azkabancont-vechi azkaban Data 19 iunie 2014 22:05:37
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
#include <algorithm> 
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");

long n,i,j,A[100013],D[100013],coef,sol,Lbest,pivot,Ssol[100013];
int main()
{
    cin>>n;
    for (i=1;i<=n;++i) cin>>A[i];
    D[1]=1;
    for (i=2;i<=n;++i){
                       Lbest=0;
                       for (j=i-1; j>0;--j) 
                                  if (A[j]<A[i]) Lbest=max(Lbest,D[j]);               
                       D[i]=1+Lbest;           
                      }
    for (i=1;i<=n;++i) 
        if (D[i]>Lbest) { 
                         pivot=i;
                         Lbest=D[i];
                         }
    cout<<D[pivot]<<"\n";
    coef=D[pivot];
    cout<<A[pivot]<<" ";
    while (--coef) 
       for (i=pivot-1;i>=1;--i) {
                                 if (D[i]==coef && A[i]<A[pivot]){
                                                                  cout<<A[i]<<" ";
                                                                  pivot=i;
                                                                  break;
                                                                 }
                                } 
return 0;
}