Cod sursa(job #2096094)

Utilizator suciualinsuciu alin suciualin Data 28 decembrie 2017 16:21:15
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb

#include <fstream>

using namespace std;

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

int main()
{
    int a[100001],b[100001],p[100001],s[100001];
    int i,j,N,m;
    fin>>N;
    for(i=1;i<=N;i++)
        fin>>a[i];
    b[1] = 1;
    p[1] = 0;
    int maxim;
    for(i=2;i<=N;i++)
        {
        p[i] = 0;
        maxim = 0;
        for(j=1;j<i;j++)
            if(a[j]<a[i] && maxim<b[j])
                    {maxim = b[j];
                    p[i] = j;}
        b[i] = maxim + 1;
        }
    m = 1;
    for(i=2;i<=N;i++)
        if(b[m] < b[i]) m = i;
    int k, kk;
    fout<<b[m]<<'\n';
    //k = b[m];
    //s[k] = a[m];
    //fout<<k<<'\n';
   //kk = k;
   fout<<a[m]<<" ";
    while(m)
    {
        m = p[m];
        //k--;
        //s[k] = a[m];
        fout<<a[m]<<" ";
    }
    //for(i=1;i<=kk;i++)
        //fout<<s[i]<<" ";



    return 0;
}