Cod sursa(job #1529883)

Utilizator pptudor1214paul pop pptudor1214 Data 21 noiembrie 2015 11:31:22
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
////////////////////PROGRAMARE DINAMICA (LUNGIMEA UNUI SUBSIR)

#include <iostream>
#include <fstream>

using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

long long sir[100000],a;
long long n, i, j, x[100000], l[100000], ant[100000], maxx, lmax, pmax;

int main()
{
    f>>n;
    for (i=1;i<=n;i++)
        f>>x[i];

    for(i=1;i<=n;i++)
    {   lmax=0;
        ant[i]=0;
        for(j=1;j<=i-1;j++)
            if(x[i]>x[j] && l[j]>lmax)
            {   lmax=l[j];
                ant[i]=j;
            }
        l[i]=1+lmax;
        if(maxx<l[i])
        {   maxx=l[i];
            pmax=i;
        }
    }
    g<<maxx<<endl;
    a=0;
    for(i=pmax;i>=1;i=ant[i])
        {   a++;
            sir[a]=x[i];
        }
    for(i=a;i>=1;i--)
        g<<sir[i]<<" ";

    return 0;
}