Cod sursa(job #1342922)

Utilizator RusuRadurusu radu RusuRadu Data 14 februarie 2015 17:56:59
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<iostream>
using namespace std;
long a[100001] , l[100001] , poz[100001];

int main()
{
	int n,i,j;
	cin>>n;
	for(i=1;i<=n;++i) {
		cin>>a[i];
		l[i]=1;       }
		
	int max=-1, indice;
	
	for(i=n;i>=1;--i){
		for(j=n;j>1;--j)
		if( a[i] <a[j] )
			if( l[i] < l[j]+1 ){
				l[i]=l[j]+1;
				poz[i]=j;
			}
			if(max<l[i]){
				max=l[i];
				indice=i;
			}
	}
	cout<<max<<endl;
	while( indice!=0) {
		cout<<a[indice]<<" ";
		indice=poz[indice];
	}
	
	return 0;
}