Cod sursa(job #1088425)

Utilizator gigamhzAndrei gigamhz Data 20 ianuarie 2014 15:31:10
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;
int l[100000],n,i,t,maxx,k;
long v[100000];

ifstream f("scmax.in");
ofstream g("scmax.out");

void citire(){


f>>n;

for(int i=0;i<n;i++)
    f>>v[i];

}
int main()
{
    int i,j;
    citire();
    l[n]=1;
    for(k=n-1;k>=1;k--){
        maxx=0;
        for(i=k+1;i<=n;i++)
        if(v[i]>v[k] && l[i]>maxx)
            maxx=l[i];
        l[k]=1+maxx;
    }
    maxx=l[1];
    t=1;
    for(k=1;k<=n;k++)
    if(l[k]>maxx){
        maxx=l[k];
        t=k;
    }
    g<<maxx<<endl<<v[t]<<" ";
    for(i=t+1;i<=n;i++)
    if(v[i]>v[t] &&l[i] == maxx-1){
        g<<v[i]<<" ";
        maxx--;
    }
    return 0;
}