Cod sursa(job #570318)

Utilizator nicknameLare Nicu nickname Data 2 aprilie 2011 20:27:43
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;

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

int main(){
	int *a,n,i,j,lmax=0,*l,m;
	fin>>n;
	a=new int[n];
	l=new int[n];
	for (i=0;i<n; ++i)
		fin>>a[i];
	l[n-1]=1;
	for (i=n-2; i>=0; --i){
		m=0;
		for (j=i+1; j<n; ++j)
			if (a[j]>a[i] && l[j]>m)
				m=l[j];
		l[i]=m+1;
		if (l[i]>lmax)
			lmax=l[i];
	}
	fout<<lmax<<"\n";
	for (i=0; i<n; ++i)
		if (l[i]==lmax){
			fout<<a[i]<<" ";
			lmax--;
	}
	delete [] a;
	delete [] l;
	fin.close();
	fout.close();
	return 0;
}