Cod sursa(job #952464)

Utilizator robert_stefanRobert Stefan robert_stefan Data 23 mai 2013 15:34:41
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#define IN "scmax.in"
#define OUT "scmax.out"
#define MAX 100000

using namespace std;

ifstream in(IN);
ofstream out(OUT);

int N, a[MAX], i, j, v, l[MAX];

int main()
{
	in>>N;
	for(i=0; i<N; i++)
		in>>a[i];
	l[N-1]=1;
	for(i=N-2; i>=0; --i)
	{
		for(j=i+1; j<N; ++j)
			if(a[i]<a[j] && l[i]<l[j])
				l[i]=l[j];
		l[i]++;
		if(v<l[i])
			v=l[i];
	}
	out<<v<<'\n';
	i=0;
	while(l[i]!=v) ++i;
	//i a ajuns pe pozitia maxima
	out<<a[i]<<' ';
	j=i;
	--v;
	while(v)
	{
		while(l[i]!=v) i++;
		if(a[j]<a[i])
        {
            out<<a[i]<<' ';
            j=i;
            --v;
        }
        else i++;
	}
	out<<'\n';
	in.close();
	out.close();
	return 0;
}