Cod sursa(job #628513)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 1 noiembrie 2011 16:54:51
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>


int v[1000],l[1000];

//..................

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