Cod sursa(job #841652)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 24 decembrie 2012 16:00:09
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<cstdio>
int n,i,j,k,sir[100005],max,rez,v[100005],poz[100005];

void back(int k)
{
	if (poz[k]) back(poz[k]);
	printf("%d ",v[k]);
}

int main()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);sir[i]=1;
		for (j=1;j<=i;j++) if (v[i]>v[j] && sir[i]<=sir[j]) poz[i]=j,sir[i]=sir[j]+1;
		if (sir[i]>max) max=sir[i],k=i;
	}
	printf("%d\n",max);
	back(k);
	return 0;
}