Cod sursa(job #2411270)

Utilizator CybotStancila Ionut-Marian Cybot Data 20 aprilie 2019 17:28:40
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n, v[100001], maxi[100001], urm[100001], nr, l, poz;

void afisarerecursiv()
{
    while (poz!=0)
    {
        int aux=poz;
        poz=urm[poz];
        afisarerecursiv();
        g<<v[aux]<<" ";
    }
}

int main()
{
    f>>n;
    for (int i=1;i<=n;i++) f>>v[i];
    maxi[1]=1;
    for (int i=2;i<=n;i++)
    {
        nr=0;
        for (int j=i-1;j>=1;j--)
        {
            if (v[i]>v[j] && nr<maxi[j])
            {
                nr=maxi[j];
                urm[i]=j;
            }
        }
        maxi[i]=nr+1;
        if (l<maxi[i])
        {
            l=maxi[i];
            poz=i;
        }
    }
    g<<l<<'\n';
    afisarerecursiv();
    g<<'\n';
    return 0;
}