Cod sursa(job #2424679)

Utilizator mihhTURCU MIHNEA ALEXANDRU mihh Data 23 mai 2019 17:39:22
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 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]={0}, poz[N];
vector <int> v;

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]+1 ,poz[i]=j;
    }

    for(i=1; i<=n; ++i)
        cout<<a[i]<<"  "<<lg[i]<<"\n";

    j=1;
    for(i=1; 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();
    fout<<n<<"\n"; --n;
    for(i=n; i>=0; --i)
        fout<<v[i]<<" ";
    return 0;
}