Cod sursa(job #1825801)

Utilizator calinlixandruLixandru Calin-Mihai calinlixandru Data 9 decembrie 2016 17:36:17
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;

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

int v[100010], s[100010],  poz[100010], t[100010], n, lmax, j, i, m;

int main()
{
    fin>>n;
    for(i=0; i<n; i++)
    {
        fin>>v[i];
        j=1;
        while(s[j] < v[i] && j <= lmax)
            j++;
        s[j] = v[i];
        poz[i] = j;
        if(j > lmax)
            lmax=j;
    }

    fout<<lmax<<'\n';
    m = lmax;
    for(i=n; i>=0; i--)
    {
        if(poz[i] == lmax)
            t[lmax] = v[i], lmax--;
    }
    for(i=1; i<=m; i++)
        fout<<t[i]<<" ";

    fin.close();
    fout.close();
    return 0;
}