Cod sursa(job #860233)

Utilizator anaid96Nasue Diana anaid96 Data 20 ianuarie 2013 12:33:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
FILE *in,*out;
int n,v[100001],l[100001],max;
int main(void)
{
	in=fopen("scmax.in","rt");
	out=fopen("scmax.out","wt");
	fscanf(in,"%d",&n);
	for(int i=1;i<=n;++i)
		fscanf(in,"%d",&v[i]);
	l[n]=1;
	for(int i=n-1;i>=1;--i)
	{
		max=0;
		for(int j=i+1;j<=n;++j)
			if(v[i]<v[j] &&l[j]>max)
				max=l[j];		
		l[i]=max+1;
	}
	max=l[1];int t=1;
	for(int i=1;i<=n;++i)
		if(l[i]>max)
		{	
			max=l[i];
			t=i;
		}
	fprintf(out,"%d\n",max);
	fprintf(out,"%d ",v[t]);
	for(int i=t+1;i<=n;++i)
		if(v[i]>v[t] && l[i]==max-1)
		{
			fprintf(out,"%d ",v[i]);
			max--;
		}	
	fclose(in);
	fclose(out);
	return 0;
}