Cod sursa(job #676024)

Utilizator thelasMatei Vlad thelas Data 8 februarie 2012 16:45:13
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>
using namespace std;
long i,n;
int main()
{  long a[100000],l[100000];
	long j,q=0,p=0,max=0,maxim=0;
	FILE* f=fopen("scmax.in","r");
	FILE* g=fopen("scmax.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;++i)
		fscanf(f,"%d",&a[i]);
	for(i=n;i>=1;--i)
	{
		max=0;
		for(j=i+1;j<=n;++j)
			if((a[j]>a[i])&&(l[j]>max))
				max=l[j];
			l[i]=max+1;
			if(l[i]>maxim)
			{
				maxim=l[i];
				p=i;
			}
	}
	max=0;
	for(i=1;i<=n;++i)
		if(l[i]>max)
			max=l[i];
		fprintf(g,"%d \n",max);
	fprintf(g,"%d ",a[p]);
	q=l[p];
	for(i=p+1;i<=n;++i)
		if(a[i]>a[p]&&l[i]==q-1)
		{
			fprintf(g,"%d ",a[i]);
			--q;
			p=i;
		}
}