Cod sursa(job #628512)

Utilizator cremarencodianaCremarenco Diana cremarencodiana Data 1 noiembrie 2011 16:51:52
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
# include <stdio.h>
int n,v[100000],d[100000],max,poz,i,j,m,x[100000];
int main()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d\n",&n);
	for (i=1; i<=n; i++)
		scanf("%d ",&v[i]);
	d[1]=1;
	for (i=2; i<=n; i++)
	{
		max=0;
		for (j=1; j<=i; j++)
			if (v[j]<v[i] && d[j]>max) max=d[j];
		d[i]=max+1;
	}
	max=0;
	for (i=1; i<=n; i++)
		if (d[i]>max) {max=d[i]; poz=i; }
	printf("%d\n",max);
		m=max;
	while (d[poz]!=1)
	{
		x[max]=v[poz];
		while (d[poz]!=max-1)
			poz--;
		max--;
	}
    x[1]=v[poz];
	for (i=1; i<=m; i++)
		printf("%d ",x[i]);
	printf("\n");
	return 0;
}