Cod sursa(job #243343)

Utilizator alex3el_n2oAlex Vladescu alex3el_n2o Data 12 ianuarie 2009 19:00:56
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
long v[100002],n,l[100002],max=0,t,j;
int main()
	{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	long i;
	scanf("%ld",&n);
	for (i=1;i<=n;i++)
		scanf("%ld",&v[i]);
	l[n]=1;
	for (i=n-1;i>=1;i--)
		{
		for (j=i+1;j<=n;j++)
			if (v[i]<v[j]&&l[j]>max)
				max=l[j];
		l[i]=1+max;
		}
        max=0;
	for (i=n;i>=1;i--)
		if (l[i]>max) {
				max=l[i];
				t=i;
				}
	printf("%ld\n%ld ",max,v[t]);
	for (j=t+1;j<=n;j++)
		if (v[j]>v[t]&&l[j]==max-1)
			{
			printf("%ld ",v[j]);
			max--;
			}
	return 0;
        }