Cod sursa(job #1118361)

Utilizator lucianRRuscanu Lucian lucianR Data 24 februarie 2014 10:30:58
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#define N_MAX 100001

using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");

int n, v[N_MAX], l[N_MAX], poz[N_MAX], m, prim;

void scmax()
{
    l[n] = 0;
    for(int i = n; i > 0; i--)
    {
        for(int j = 1; j < i; j++)
        {
            if(v[j] < v[i] && l[j] < l[i] + 1)
            {
                l[j] = l[i] + 1;
                poz[j] = i;
            }
        }
        if(m < l[i])
        {
            m = l[i];
            prim = i;
        }
    }
}

void afisare(int nr)
{
    out << v[nr] << " ";
    if(poz[nr] != 0) afisare(poz[nr]);
}

int main()
{
    in >> n;
    for(int i = 1; i <= n; i++)
        in >> v[i];
    scmax();
    out << m + 1<< '\n';
    afisare(prim);
    return 0;
}