Cod sursa(job #2458661)

Utilizator DanSDan Teodor Savastre DanS Data 21 septembrie 2019 11:57:43
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[100001], n, imax, l[100001], pred[100001];

void afis(int i)
{
    if(pred[i])
        afis(pred[i]);
    out<<v[i]<<' ';
}

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

    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<i; j++)
            if(v[j] < v[i] && l[j] > l[i])
            {
                l[i] = l[j];
                pred[i] = j;
            }
        l[i]++;
        if(l[i] > l[imax])
        {
            imax = i;
        }
    }
    out<<l[imax]<<'\n';
    afis(imax);
    return 0;
}