Cod sursa(job #1734621)

Utilizator alexandrion10966Alexandrion A alexandrion10966 Data 27 iulie 2016 20:22:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
using namespace std;
long long int v[100001],L[100001],n;
ifstream f("scmax.in");
ofstream g("scmax.out");
void afiseaza(int maxt,int pm)
{
    if(pm>0)
    {
        int k=pm-1;
        while(L[k]!=maxt-1 && k>0)
            k--;
        afiseaza(maxt-1,k);
        g<<v[pm]<<" ";
    }
}
int main()
{
    int m,maxt=1,pm=1,i,j;

    f>>n;
    for(i=1; i<=n; i++)
    {
        f>>v[i];
        L[i]=1;
    }
    for(i=2; i<=n; i++)
    {
        m=0;
        for(j=1; j<i; j++)
            if(v[i]>v[j] && L[j]>m)
                m=L[j];
        L[i]=m+1;
        if(L[i]>maxt)
        {
            maxt=L[i];
            pm=i;
        }
    }
    g<<maxt<<endl;
    afiseaza(maxt,pm);
    f.close();
    g.close();
    return 0;
}