Cod sursa(job #2711513)

Utilizator Fatu_SamuelFatu Samuel Fatu_Samuel Data 24 februarie 2021 11:48:28
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int nMax = 100005;

int n;

int v[nMax], l[nMax], p[nMax];

void Afisare(int pos)
{
    if (pos != 0)
    {
        Afisare(p[pos]);
        fout << p[pos];
    }
}

int main()
{
    fin >> n;

    for (int i = 1; i <= n; i++)
    {
        fin >> v[i];

        l[i] = 1;

        for (int k = 1; k < i; k++)
        {
            if (v[i] > v[k] && l[i] < l[k] + 1)
            {
                l[i] = l[k] + 1;
                p[i] = k;
            }
        }
    }

    int lungimeMaxima = 0, posStart = 0;

    for (int i = 1; i <= n; i++)
    {
        if (lungimeMaxima < l[i])
        {
            lungimeMaxima = l[i];
            posStart = i;
        }
    }

    Afisare(posStart);

    fin.close();
    fout.close();
    return 0;
}