Cod sursa(job #640003)

Utilizator sebe14Moraru Sebastian sebe14 Data 24 noiembrie 2011 15:42:47
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");

int v[100],l[100],n;

int main(){
	int i,j,lmax,pmax=1;
	in>>n;
	for(i=1; i<=n; i++)
		in>>v[i];
	l[n]=1;
	for(i=n-1; i>=1; i--){
		lmax=0;
		for(j=i+1; j<=n; j++)
			if(v[j]>v[i] && l[j]>lmax)
				lmax=l[j];
		l[i]=lmax+1;
	}
	lmax=l[1];
	for(i=2; i<=n; i++)
		if(l[i]>lmax){
			lmax=l[i];
			pmax=i;
		}
	out<<lmax<<endl;
	out<<v[pmax]<<" ";
	lmax--;
	int ult=v[pmax];
	for(i=pmax+1; i<=n&&lmax; i++)
		if(v[i]>ult && l[i]==lmax){
			out<<v[i]<<" ";
			lmax--;
			ult=v[i];
		}
	return 0;
}