Cod sursa(job #1247538)

Utilizator dany3608Tyekar Dan dany3608 Data 22 octombrie 2014 22:26:50
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int v[100001],a[100001],b[100001],i,j,n,smax,macs=0;
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f>>n;
    f>>v[1];
    a[1]=1;
    smax=1;
    for (i=2; i<=n ; i++ )
    {
        f>>v[i];
        macs=0;
        for (j=i-1; j>=1 ; j-- )
        {
            if(v[j]<v[i]&&macs<a[j])
                macs=a[j];
        }
        a[i]=macs+1;
        if(macs+1>smax) smax=macs+1;
    }
    g<<smax;
    g<<'\n';
    b[smax+1]=2000000001;
    macs=smax;
    for (i=n; i>=1 ; i-- )
    {
        if((a[i]==macs)&&v[i]<b[macs+1])
        {
            b[macs]=v[i];
            macs=macs-1;
        }
    }
    for (i=1; i<=smax ; i++ )
        g<<b[i]<<" ";
    return 0;
}