Cod sursa(job #693843)

Utilizator pandreeaePopescu Andreea pandreeae Data 27 februarie 2012 17:13:02
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
using namespace std;

int main ()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	int n,a[100002]={0},best[100002],i,j,max=0,m,v[100002]={0};
	scanf("%d%d",&n,&a[0]);
	best[0]=1;
	for(i=1;i<n;i++){
		scanf("%d",&a[i]);
		m=i;
		for(j=0;j<i;j++){
			if(a[i]>a[j]&best[m]<best[j])
				m=j;}
		best[i]=best[m]+1;
		if(v[best[i]]!=0){
			if(v[best[i]]>a[i])
				v[best[i]]=a[i];}
		else
			v[best[i]]=a[i];
		if(best[i]>max){
			max=best[i];}}
	printf("%d\n",max);
	for(i=1;i<=max;i++)
		printf("%d ",v[i]);
	return 0;
}