Cod sursa(job #2699323)

Utilizator esanustefanEsanu Stefan esanustefan Data 24 ianuarie 2021 10:30:13
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>

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

int a[100001], drum[100001];
void Afisare_drum(int poz)
{
    if(drum[poz] != 0)
    {
        Afisare_drum(drum[poz]);
    }
    fout << a[poz] << " ";
}

int main()
{
    int n, i, j, lg[100001], maxi = 0, poz = 0, v[100001], dim = 0;
    fin >> n;
    for(i = 1; i <= n; i++)
        fin >> a[i];
    for(i = 1; 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;
                drum[i] = j;
            }
    }

    for(i = 1; i <= n; i++)
    {
        if(lg[i] > maxi)
        {
            maxi = lg[i];
            poz = i;
        }
    }

    Afisare_drum(poz);

    /*
    while(poz != 0)
    {
        v[++dim] = a[poz];
        poz = drum[poz];
    }

    for(i = dim; i >= 1; i--)
        fout << v[i] << " ";
    */
    return 0;
}