Cod sursa(job #2523681)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 14 ianuarie 2020 17:11:53
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#define N 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

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


void Read()
{
    int i;
    fin>>n;
    for(i=1;i<=n;++i)fin>>a[i];
}

void Print(int i)
{
    if(t[i]!=0)Print(t[i]);
    fout<<a[i]<<" ";

}


void Solve()
{
    int i,j,lgmax=0,poz;
    for(i=1;i<=n;++i)
    {
        t[i]=0;lg[i]=1;//subsirul form doar din el
        for(j=1;j<i;++j)
            if(a[j]<a[i]&&lg[j]+1>lg[i])
        {
            lg[i]=lg[j]+1;
            t[i]=j;
            if(lg[i]>lgmax)lgmax=lg[i],poz=i;
        }
    }
    fout<<lgmax<<"\n";
    Print(poz);
}
int main()
{
    Read();
    Solve();
    return 0;
}