Cod sursa(job #2096091)

Utilizator suciualinsuciu alin suciualin Data 28 decembrie 2017 16:14:56
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb

#include <fstream>

using namespace std;

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

int main()
{
    int a[100],b[100],p[100],s[100];
    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;

    k = b[m];
    s[k] = a[m];
    fout<<k<<'\n';
    kk = k;
    while(p[m])
    {
        m = p[m];
        k--;
        s[k] = a[m];
    }
    for(i=1;i<=kk;i++)
        fout<<s[i]<<" ";



    return 0;
}