Cod sursa(job #2106851)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 16 ianuarie 2018 12:38:01
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#define nmax 100000+1
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,a[nmax],lg[nmax],urm[nmax],indice,lgmax;
int main()
{
    fin>>n;
    for(int i = 0 ; i < n ; i ++)
        fin>>a[i];
    for(int i =  n -1 ; i >= 0 ; i -- )
    {
        lg[i]=1;
        urm[i]=0;
        for(int j = i + 1; j <= n ; j ++)
            if(a[i] < a[j] && lg[j]>=lg[i])

            {
                lg[i]=lg[j]+1;
                   urm[i]=j;
            }
    }
             lgmax=0;
            indice=0;
            for(int i = 0 ; i < n ; i++ )
            {
              if(lgmax<lg[i])
              {
                  lgmax=lg[i];
                  indice=i;
              }
            }
            do{
                fout<<a[indice]<<" ";
                indice=urm[indice];

            }while(urm[indice]!=0);
            fout<<a[indice]<<'\n';


    return 0;
}