Cod sursa(job #893777)

Utilizator FernandoSandoiu Fernando Fernando Data 26 februarie 2013 17:51:50
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#define ul unsigned long
using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

long long v[100000],M[100000];
unsigned long max1,n,k,L[100000],mx,t;

int main(){

    fin>>n;
    for(ul i=1;i<=n;i++)
        fin>>v[i];
    L[n]=1;
    for( k=n-1;k>=1;k--)
    {
        mx=0;
        for(ul i=k+1;i<=n;i++)
            if(v[i]>=v[k] && L[i]>mx)
                mx=L[i];
        L[k]=mx+1;
        if(L[k]>max1)
            max1=L[k],t=k;
    }
    fout<<max1<<"\n"<<v[t]<<" ";
    for(ul i=t+1;i<=n;i++)
        if(v[i]>=v[t] && L[i]==max1-1)
            fout<<v[i]<<" ", max1--;
    fout<<"\n";
    return 0;
}