Cod sursa(job #1015920)

Utilizator macajouMaca George macajou Data 25 octombrie 2013 14:19:22
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;

int n,a[100001],l[100001],pozmax,urm[100001];

void citire()
{
    ifstream fin("scmax.in");
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
}

void rez()
{
    int i,j;
    l[n]=1;
    for(i=n-1;i;i--)
        {
            urm[i]=i;
            for(j=i+1;j<=n;j++)
                if(a[i]<a[j] && l[urm[i]]<l[j])
                   urm[i]=j;
            l[i]=l[urm[i]]+1;
            if(l[i]>l[pozmax])
               pozmax=i;
        }
}

void afisare()
{
    ofstream fout("scmax.out");
    urm[n]=n+1;
    for(int i=pozmax;i<=n;i=urm[i])
        fout<<a[i]<<" ";

}

int main()
{
    citire();
    rez();
    afisare();

    return 0;
}