Cod sursa(job #2759146)

Utilizator denisacris03Bunea Denisa denisacris03 Data 15 iunie 2021 18:09:32
Problema Subsir crescator maximal Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>

using namespace std;

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

const int N = 100000;
long long a[N], v[N];
int l[N];

int main()
{
    int n, k = 0, ifin;
    in >> n;
    for (int i = 0; i < n; i++)
    {
        in >> a[i];
    }
    in.close();
    l[0] = 1;
    for (int i = 1; i <= n; i++)
    {
        int maxi = 0;
        for (int j = 0; j < i; j++)
        {
            if (a[j] < a[i])
            {
                maxi = max (maxi, l[j]);
            }
        }
        l[i] = 1 + maxi;
    }
    int m = 0;
    for (int i = 0; i < n; i++)
    {
        m = max (m, l[i]);
        ifin = i++;
    }
    out << m << '\n';
    v[k] = a[ifin];
    for (int j = m - 1; j >= 0 && k <= ifin; j--)
    {
        if (a[j] < v[k])
        {
            v[k++] = a[j];
        }
    }
    for (int i = 0; i < k; i++)
    {
        out << v[i] << ' ';
    }
    out.close();
    return 0;
}