Cod sursa(job #2607829)

Utilizator LorinBudacaLorin Budaca LorinBudaca Data 30 aprilie 2020 11:33:14
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;

ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n, v[10005], scm[10005], maxim, poz;
void afisare(int poz)
{
    int i = poz - 1;
    for (i = poz - 1; i >= 1; i--)
    {
        if (scm[i] == scm[poz] - 1 && v[poz] > v[i])
        {
            afisare(i);
            break;
        }
    }
    cout << v[poz] << ' ';

}
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> v[i];
    scm[1] = 1; maxim = 1;
    for (int i = 2; i <= n; i++)
    {
        scm[i] = 1;
        for (int j = 1; j < i; j++)
            if (v[i] > v[j] && scm[j] + 1 > scm[i])
                scm[i] = scm[j] + 1;
        if (scm[i] > maxim)
            maxim = scm[i], poz = i;
    }
    cout << maxim << '\n';
    afisare(poz);

    return 0;
}