Cod sursa(job #1665086)

Utilizator meeprrMelinte Paul meeprr Data 26 martie 2016 16:10:43
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[100001], lungmax[100001], parc[100001];

void afis(int p)
{
    if(parc[p]!=0)
    {
        afis(parc[p]);
    }
    g<<v[p]<<" ";
}

int main()
{
    int n,i,j,pmax;
    f>>n>>v[1];
    lungmax[1]=1;
    parc[1]=0;
    pmax=1;
    for(i=2;i<=n;i++)
    {
        f>>v[i];
        lungmax[i]=0;
        for(j=1;j<=i;j++) if(v[i]>v[j]) if(lungmax[j]>lungmax[i]) {parc[i]=j; lungmax[i]=lungmax[j];}
        lungmax[i]++;
        if(lungmax[i]>lungmax[pmax]) pmax=i;
    }

    g<<lungmax[pmax]<<"\n";

    afis(pmax);

    g.close();

    return 0;
}