Cod sursa(job #1665088)

Utilizator stanciuandreiStanciulescu Andrei stanciuandrei Data 26 martie 2016 16:11:46
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#define NMAX 100002
using namespace std;

ifstream in("scmax.in");
ofstream out("scmax.out");
int lung[NMAX], pred[NMAX], v[NMAX];
void afis(int p)
{
    if(pred[p]!=0)
    {
        afis(pred[p]);

    }
    out<<v[p]<<" ";
}
int main()
{
    int n, pmax = 1;
    lung[1] = 1;
    pred[1] = 0;
    in>>n;
    in>>v[1];
    for(int i=2;i<=n;i++)
    {
        in>>v[i];
        lung[i] = 0;
        for(int j = 1;j<i;j++)
        {
            if(v[j]<v[i])
            {
                if(lung[j]>lung[i])
                {
                    lung[i] = lung[j];
                    pred[i] = j;
                }
            }

        }
        lung[i]++;
            if(lung[i]>lung[pmax])
                pmax = i;
    }
    out<<lung[pmax]<<"\n";
    afis(pmax);
    return 0;
}