Cod sursa(job #2389246)

Utilizator StormieStormie Stormie Data 26 martie 2019 21:48:35
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n;
int v[100010];
int scmax[100010];
int prev[100010];
int maxim = 0;

int main()
{
    f >> n;
    for(int i = 0; i < n; i++)
        f >> v[i];
    for(int i = n - 1; i >= 0; i--)
    {
        for(int j = i + 1; j < n; j++)
            if(v[i] < v[j])
        {
            if(scmax[i] < scmax[j] + 1)
            {
                scmax[i] = scmax[j] + 1;
                if(scmax[i] > scmax[maxim]) maxim = i;
                prev[i] = j;
            }
        }
        if(scmax[i] == 0) scmax[i] = 1;
    }
    g << scmax[maxim] << '\n';
    while(prev[maxim])
    {
        g << v[maxim] << ' ';
        maxim = prev[maxim];
    }
    g << v[maxim] << ' ';
    f.close();
    g.close();
    return 0;
}