Cod sursa(job #1384603)

Utilizator Anaa_IIanciuc Ana Anaa_I Data 11 martie 2015 11:21:34
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001], lung [100001], pred[100001];
void subsir(int p)
{
    if(pred[p])
        subsir(pred[p]);
    g<<v[p]<<" ";
}
int main()
{
    int n,lmax,pr;
    f>>n;
    for(int i=1;i<=n;i++) f>>v[i];
    lung [1]=1;
    pred [1]=0;
    for(int i=2;i<=n;i++)
    {
        lmax=0, pr=0;
        for(int j=1;j<i;j++)
        {
            if(v[j]<v[i])
            {
                if(lung[j]>lmax)
                {
                    lmax=lung[j];
                    pr=j;
                }
            }
        }
        lung[i]=1+lmax;
        pred[i]=pr;

    }
    //g<<lmax<<"\n";
    int elmax=1;
    for(int i=2;i<=n;i++)
        if(lung[elmax]<lung[i]) elmax=i;
    g << lung[elmax] << "\n";
    subsir(elmax);

    //for(int i=1;i<=n;i++) g<<lung[i]<<" ";
    return 0;
}