Cod sursa(job #798418)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 16 octombrie 2012 16:45:49
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;
int a[100005],c[100005],succ[100005],n,poz_max,lung_max;

int main()
{
	int i,j;
	freopen("scmax.in","r",stdin);
	scanf("%d",&n);
	for(i=0;i<n;i++) scanf("%d",&a[i]);
	freopen("scmax.out","w",stdout);
	for(j=n-1;j>=0;j--)
	{
		//printf("%d ",a[j]);
		c[j]=0;
		for(i=j+1;i<n;i++)
			if(a[j]<a[i] && c[j]<c[i])
				{
				c[j]=c[i];
				succ[j]=i;
				}
		c[j]++;
		if(c[j]>lung_max)
		{
			poz_max=j;
			lung_max=c[j];
		}
		//printf("%d \n",c[j]);
	}
	printf("%d \n",lung_max);
	i=poz_max;
	while(i)
	{
	   printf("%d ",a[i]);
	   i=succ[i];
	}
	printf("\n");
	return 0;
}