Cod sursa(job #2447807)

Utilizator pishcotMiruna Turbatu pishcot Data 14 august 2019 17:55:46
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, a[100005];
int dp[100005];
int pr[100005];
int s[100005];

int main()
{
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> a[i];

    for(int i = 1; i <= n; i++)
    {
        int mx = 0, poz = 0;
            for(int j = 1; j <= i; j++)
                if(a[j] < a[i] && dp[j] > mx)
                    {
                        mx = dp[j];
                        poz = j;
                    }
        dp[i] = mx + 1;
        pr[i] = poz;
    }

    int sol = -1, p;
    for(int i = 1; i <= n; i++)
     if(dp[i] > sol)
       {
           sol = dp[i];
           p = i;

       }
    fout << sol << "\n";
    int lg = 0;
    while(dp[p] > 0)
    {
        s[++lg] = a[p];
        p = pr[p];

    }
    for(int i = lg; i >= 1; i--)
        fout << s[i] << " ";

    return 0;
}