Cod sursa(job #1112015)

Utilizator roxana_97Soare Roxana Florentina roxana_97 Data 19 februarie 2014 12:40:46
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long v[100010];
int n,l[100010],m,x,ante[100010],poz;
void constr(int poz)
{
    if(ante[poz]==poz)
    {
        g<<v[poz]<<' ';
        return;
    }
    constr(ante[poz]);
    g<<v[poz]<<' ';
}
int main()
{
    f>>n;
    for(int i=1;i<=n;++i) f>>v[i];
    for(int i=1;i<=n;++i)
    {
        if(l[i]==0)
        {
            l[i]++;
            ante[i]=i;
        }
        for(int j=i+1;j<=n;++j)
        {
            if(v[i]<v[j]&&l[j]<l[i]+1)
            {
                l[j]=l[i]+1;
                ante[j]=i;
            }
        }
    }
    m=-1;
    for(int k=1;k<=n;k++)
    {
        if(m<l[k])
        {
            m=l[k];
            poz=k;
        }
    }
    g<<m<<'\n';
    constr(poz);
}