Cod sursa(job #2280040)

Utilizator severutBogdan Sever-Cristian severut Data 10 noiembrie 2018 11:06:47
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int c[100001],best[100001],pre[100001],sir[100001];
int n,maxim,indice,contor;
int main()
{
    cin>>n;
    for (int i=1;i<=n;++i)
        cin>>c[i];
    best[1]=1;
    for (int i=1;i<=n;++i)
    {
        maxim=0;
        for (int j=2;j<i;++j)
        {
            if (best[j]>maxim&&c[j]<c[i])
            {
                maxim=best[j];
                pre[i]=j;
            }
        }
        best[i]=1+maxim;
    }
    maxim=0;
    for(int i=1;i<=n;++i)
        if(best[i]>maxim)
        {
            indice=i;
            maxim=best[i];
        }
    out<<maxim<<'\n';
    contor=1;
    while(indice)
    {
        sir[contor]=c[indice];
        indice=pre[indice];
        ++contor;
    }
    --contor;
    for(int i=contor;i>=1;--i)
        out<<sir[i]<<" ";
    return 0;
}