Cod sursa(job #1630446)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 5 martie 2016 09:14:26
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

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

int n,a[100001];
int lg[100001],t[100001];

void Solutie(int p)
{
   if(t[p]!=0) Solutie(t[p]);
   fout<<a[p]<<' ';
}

int main()
{
    int i,j,p,lgmax;

    fin>>n;
    for(i=1; i<=n; i++) fin>>a[i];
    fin.close();

    lg[1]=1; t[i]=0;
    for(i=2; i<=n; i++)
      {
         lg[i]=1;
         for(j=1; j<i; j++)
            if(a[j]<a[i] && lg[j]+1 > lg[i])
            {
               lg[i]=lg[j]+1;
               t[i]=j;
            }
      }

    lgmax=0;
    for(i=1; i<=n; i++)
    if(lg[i]>lgmax) {lgmax=lg[i]; p=i;}

    fout<<lgmax<<'\n';
    Solutie(p);


    return 0;
}