Cod sursa(job #643902)

Utilizator Athena99Anghel Anca Athena99 Data 4 decembrie 2011 17:26:38
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>

int v[100000],p[100000],q[100000],m[100000];

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