Cod sursa(job #2364986)

Utilizator ImbuzanRaduImbuzan Radu ImbuzanRadu Data 4 martie 2019 11:39:42
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda pregatire_cls12_oji Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>

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

#define NMAX 100000
using namespace std;

int n, a[NMAX], maxxGlobal = 1;
int dp[NMAX];
vector<int> sol;
int main()
{
    f>>n;
    for(int i = 1; i <= n; i++)
    {
        f>>a[i];
        dp[i] = 1;
    }


    for(int i = 2; i <= n; i++)
        for(int j = 1; j <= i; j++)
            if(a[j] < a[i])
            {
                dp[i] = max(dp[j] + 1, dp[i]);
                maxxGlobal = max(maxxGlobal, dp[i]);
            }

    g<<maxxGlobal<<'\n';
    for(int i = n; i >= 1; i--)
        if(dp[i] == maxxGlobal)
        {
            sol.push_back(a[i]);
            maxxGlobal--;
        }
    for(int i = sol.size() - 1; i >= 0; i--)
        g<<sol[i]<<" ";
    return 0;
}