Cod sursa(job #1243907)

Utilizator dany3608Tyekar Dan dany3608 Data 16 octombrie 2014 16:20:12
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int v[100001],a[100001],b[100001],i,j,n,smax,macs;
    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=macs+1;
    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;
}