Cod sursa(job #2648446)

Utilizator dariadragomir23Dragomir Daria dariadragomir23 Data 10 septembrie 2020 21:01:52
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

int n, a[100005], L[100005], maxim;

void citire()
{
    f>>n;
    for(int i=1; i<=n; i++)
        f>>a[i];
}

void parcurgere()
{
    for(int i=1; i<=n; i++)
    {
        int mx=0;
        for(int j=1; j<i; j++)
            if(a[j]<a[i])
                mx=max(mx, L[j]);
        L[i]=mx+1;
        maxim=max(L[i], maxim);
    }
}

void afisare(int nr, int poz)
{
    if(nr==0)
        return;
    for(int i=poz; ; i--)
    {
        if(L[i]==nr)
        {
            afisare(nr-1, i-1);
            g<<a[i]<<" ";
            break;
        }
    }
}

int main()
{
    citire();
    parcurgere();
    g<<maxim<<'\n';
    afisare(maxim, n);
    return 0;
}