Cod sursa(job #2424310)

Utilizator mihhTURCU MIHNEA ALEXANDRU mihh Data 22 mai 2019 21:16:11
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
#define N 100006
using namespace std;

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

int n, a[N], lg[N], poz[N];

int main()
{
    int i, j;

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

    for(i=1; i<=n; ++i)
    {
        lg[i]=1;
        for(j=1; j<=i; ++j)
            if(a[j]<a[i] and lg[i]<lg[j]+1)
                lg[i]+=lg[j] ,poz[i]=j;
    }

    vector <int> v;
    for(i=2; i<=n; ++i)
        if(lg[i]>lg[j])
            j=i;

    v.push_back(a[j]);
    while(a[poz[j]])
        v.push_back(a[poz[j]]) , j=poz[j];

    n=v.size()-1;
    fout<<n+1<<"\n";
    for(i=n; i>=0; --i)
        fout<<v[i]<<" ";
    return 0;
}