Cod sursa(job #900506)

Utilizator Claudiu95Vartolomei Alexandru Claudiu Claudiu95 Data 28 februarie 2013 20:06:56
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<cstdio>
#include<iostream>
using namespace std;
#define maxn 100010
#define maxx  2000000010
int n,lung[maxn],mx,maxi,a[maxn];
int main(){
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	lung[n]=1;
	for(int i=n-1;i>=1;--i){
		mx=0;
		for(int j=i+1;j<=n;++j)
			if(a[j]>a[i])
				if(lung[j]>mx)
					mx=lung[j];
		lung[i]=mx+1;
		if(lung[i]>maxi)
			maxi=lung[i];
	}
	printf("%d\n",maxi);
	
	for(int i=1;i<=n;++i)
		if(lung[i]==maxi){
			--maxi;
			printf("%d ",a[i]);
		}
return 0;
}