Cod sursa(job #900130)

Utilizator SerbanAlexandru9Serban Alexandru SerbanAlexandru9 Data 28 februarie 2013 17:48:30
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>
int x[100001],n,l[100001],i;
void cit(){
	freopen("scmax.in","r",stdin);
	int i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&x[i]);
	fclose(stdin);
}
void pd(){
	int i,j,max;
	l[n]=1;
	for(i=n-1;i>0;i--){
		max=0;
		for(j=i+1;j<=n;j++)
			if(x[j]>x[i]&&l[j]>max)
				max=l[j];
		l[i]=max+1;
	}
}
void afis(){
	int i,j,poz,max=0,max1;
	freopen("scmax.out","w",stdout);
	for(i=1;i<=n;i++)
		if(l[i]>max){
			max=l[i];
			poz=i;
		}
	printf("%d\n",max);
		max1=max;
	for(i=1;i<=max1;i++){
		printf("%d ",x[poz]);
		max--;
		for(j=poz+1;j<=n;j++)
			if(l[j]==max&&x[j]>x[poz])
				break;
		poz=j;
	}
fclose(stdout);
}
int main(){
	cit();
	pd();
	afis();
	return 0;
}