Cod sursa(job #2607826)

Utilizator VinaAndreeaVina Andreea VinaAndreea Data 30 aprilie 2020 11:32:38
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scamax.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;
        }
    }
    fout << v[poz] << ' ';
        
}
int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> 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;
    }
    fout << maxim << '\n';
    afisare(poz);

    return 0;
}