Cod sursa(job #2046515)

Utilizator NannyiMaslinca Alecsandru Mihai Nannyi Data 23 octombrie 2017 21:03:26
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int mxt,n,v[100001],w[100001],e[100001];


int main()
{
    f>>n;
    f>>v[1];
    w[1]=1;
    for (int i=2; i<=n; ++i)
    {
        f>>v[i];
        int mx=0;
        for (int j=1; j<i; ++j)
        {
            if (v[i]>v[j]&&w[j]>mx)
                mx=w[j];
        }
        w[i]=mx+1;
        if (w[i]>w[mxt])
            mxt=i;
    }
    int nr=w[mxt];
    e[w[mxt]]=v[mxt];
    for (int i=mxt-1;i>0;--i)
    {
        while (v[i]>v[mxt]||w[i]!=w[mxt]-1)
            --i;
        mxt=i;
        e[w[mxt]]=v[mxt];
    }
    g<<nr<<'\n';
    for (int i=1;i<=nr;++i)
        g<<e[i]<<' ';
    return 0;
}