Cod sursa(job #178342)

Utilizator georgepalPal George Catalin georgepal Data 14 aprilie 2008 13:54:46
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
int main()
	{
	long long x[100],a[100],c[100];
	long long p,max,i,k,n;
	FILE*f,*g;
	f=fopen("scmax.in","r");
	g=fopen("scmax.out","w");
	fscanf(f,"%lld",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%lld",&x[i]);
	max=1;p=n;c[n]=1;
	for(k=n-1;k>0;k--)
		{
		c[k]=1;a[k]=0;
		for(i=k+1;i<=n;++i)
			if(x[i]>x[k])
				if(c[i]+1>c[k])
				{c[k]=c[i]+1;a[k]=i;}
			if(c[k]>max)
				{max=c[k];p=k;}
		}
	fprintf(g,"%lld\n%lld ",max,x[p]);
	for(i=1;i<max;i++)
	     {p=a[p];
	     fprintf(g,"%lld ",x[p]);
	     }
	fcloseall();
	return 0;
        }