Cod sursa(job #2148436)

Utilizator edi9876Negescu Eduard Mihai edi9876 Data 1 martie 2018 18:37:31
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;

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

const int N = 100000;
long long v[N];
int lung[N], harta[N];

#define debug(a)\
{\
    out << #a << ' ' << a << '\n';\
}

void afis(int i)
{
    if(i == 0)
    {
        return;
    }
    afis(harta[i]);
    out << v[i] << ' ';
}

int main()
{
    int n, ml = 0, mp;
    in >> n;
    for(int i = 1; i <= n; i++)
    {
        in >> v[i];
        lung[i] = 0;
        harta[i] = 0;
        for(int j = 1; j < i; j++)
        {
            if(v[j] < v[i] && lung[j] > lung[i])
            {
                lung[i] = lung[j];
                harta[i] = j;
            }
        }
        lung[i]++;
        if(lung[i] > ml)
        {
            ml = lung[i];
            mp = i;
        }
    }
    out << ml << '\n';
    afis(mp);
    return 0;
}