Cod sursa(job #1266196)

Utilizator andrei1998xAndrei Ionut andrei1998x Data 18 noiembrie 2014 14:31:25
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream fin("submax.in");
ofstream fout("submax.out");
int n,i,j,maxim,v[100001],T[100001],L[100001],p,x,xp;

void drum(int poz){
    if (poz!=0)
    {
        drum(T[poz]);
        fout<<v[poz]<<" ";
    }
}

int main()
{
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    L[1]=1;
    T[1]=0;
    for (i=2;i<=n;i++)
    {
        maxim=0;
        for (j=1;j<i;j++)
            if (v[j]<v[i] && L[j]>maxim)
            {
                maxim=L[j];
                p=j;
            }
        L[j]=1+maxim;
        if (maxim!=0)
            T[i]=p;
        if (L[i]>x)
        {
            x=L[i];
            xp=i;
        }

    }
    fout<<x<<"\n";
    drum(xp);
    return 0;
}