Cod sursa(job #518398)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 31 decembrie 2010 13:54:23
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
long n, x[100000], l[100000], i, j, max, val, lung, sol[100000], poz;
int main()
{
	freopen("scmax.in", "r", stdin);
	freopen("scmax.out", "w", stdout);
	scanf("%ld", &n);
  l[0]=0;
	for (i=1; i<=n; i++)
	{
		scanf("%ld", &x[i]);
		l[i]=l[0];
		for (j=1; j<i; j++)
			if ((l[i]<l[j])&&(x[i]>x[j]))
				l[i]=l[j];
		l[i]++;
		if (l[i]>max)
		{
			max=l[i];
			val=x[i];
		}//if
	}//for i
	poz=0;
	lung=max;
	val++;
  for (i=n; i>0; i--)
		if ((l[i]==lung)&&(x[i]<val))
		{
			sol[poz++]=x[i];
			val=x[i];
			lung--;
		}//if
	printf("%ld\n", max);
	for (i=poz-1; i>=0; i--)
		printf("%ld ", sol[i]);
	return 0;
}//main