Cod sursa(job #1156739)

Utilizator ralucik_2006Filimon Raluca Elena ralucik_2006 Data 27 martie 2014 22:34:05
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;

int a[100001],mx,pc,prec[100001],lg[100001],n,i,j,pz;

int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f>>n;
    for (i=1;i<=n;i++)
        f>>a[i];
    lg[n]=1;
    for (i=n;i>0;i--)
    {
        mx=0;pc=i;
        for (j=i+1;j<=n;j++)
        {
            if (a[j]>a[i] && mx<lg[j])
            {
                mx=lg[j];
                pc=j;
            }
        }
        lg[i]=mx+1;
        prec[i]=pc;
    }
    for (i=1;i<=n;i++)
        if (lg[i]>=mx) {mx=lg[i];pz=i;}
    while (pz!=prec[pz])
    {
        g<<a[pz]<<" ";
        pz=prec[pz];
    }
    g<<a[pz];
    return 0;
}