Cod sursa(job #1367826)

Utilizator remus88Neatu Remus Mihai remus88 Data 2 martie 2015 10:08:44
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
//subsir crescator maximal
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");

int n,nr,v[100099],l[100099],maxx,poz,ante[100099],fin[100099];

int main()
{
    f>>n;
    for (int i=1; i<=n; ++i)
    {
        f>>v[i];
        l[i]=1;
    }
    l[1]=1;
    for(int i=2; i<=n; ++i)
        for (int j=1; j<i; ++j)
        if (v[j]<v[i])
        {
            if (l[i]<l[j]+1)
            {
                l[i]=l[j]+1;
                ante[i]=j;
            }
        }
    maxx=1;
    for (int i=1; i<=n; ++i)
        if (l[i]>maxx)
        {
            maxx=l[i];
            poz=i;
        }
    nr=0;
    while (poz!=0)
    {
        ++nr;
        fin[nr]=v[poz];
        poz=ante[poz];
    }
    g<<maxx<<'\n';
    for (int i=nr; i>=1; --i) g<<fin[i]<<' ';
    g<<'\n';
    g.close(); f.close();
    return 0;
}