Cod sursa(job #3251077)

Utilizator Petru_77Panait Mihai-Petru Petru_77 Data 24 octombrie 2024 19:29:09
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

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

int n;
vector<int> v, l;

int main()
{
    in >> n;
    v.resize(n);
    l.resize(n);
    for(int i = 1; i <= n; i++)
    {
        in >> v[i];
    }
    l[n] = 1;
    for(int i = n - 1; i >= 1; i--)
    {
        int maxim = 0;
        for(int j = i + 1; j <= n; j++)
        {
            if(v[i] < v[j] && l[j] > maxim)
            {
                maxim = l[j];
            }
        }
        l[i] = 1 + maxim;
    }

    int maxim = 0;
    for(int i = 1; i <= n; i++)
    {
        if(l[i] > maxim)
        {
            maxim = l[i];
        }
    }
    out << maxim << '\n';
    int k = 0;
    v[0] = -1;
    for(int i = 1; i <= n; i++)
    {
        if(l[i] == maxim && v[k] < v[i])
        {
            maxim --;
            out << v[i] << " ";
            k = i;
        }
    }
    return 0;
}