Cod sursa(job #2771644)

Utilizator guzgandemunteIonescu Laura guzgandemunte Data 28 august 2021 14:16:06
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#define NMAX 100000
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

int v[NMAX], best[NMAX], urm[NMAX];
int main()
{
    int n, mx, maxim = 0, poz = -1;

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

    for (int i = n - 2; i >= 0; i--)
    {
        mx = 1;
        for (int j = i + 1; j < n; j++)
            if (v[i] < v[j] && 1 + best[j] > mx)
            mx = 1 + best[j], urm[i] = j;
        best[i] = mx;
        if (best[i] > maxim)
            maxim = best[i], poz = i;
    }

    fout << maxim << endl;

    for (int k = 0; k < maxim; k++)
    {
        fout << v[poz] << " ";
        poz = urm[poz];
    }

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