Cod sursa(job #913701)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 13 martie 2013 18:31:26
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<cstdio>
#include<algorithm>
#define inf 2000000000
using namespace std;
int n,i,j,k,rez,a[100005],b[100005],v[100005];
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]);
		a[i]=inf;
		j=(lower_bound(a+1,a+i+1,v[i])-a);
		a[j]=v[i];
		b[i]=j;
		rez=max(rez,j);
	}
	printf("%d\n",rez);j=rez;
	for (i=n;i>0 && j>0;i--) if (b[i]==j) a[j]=v[i],j--;
	for (i=1;i<=rez;i++) printf("%d ",a[i]);
	return 0;
}