Cod sursa(job #444857)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 21 aprilie 2010 21:40:35
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<cstdio>
using namespace std;
long n,v[100002],i,l[100002],k,maxim,t;
int main()
{
	
	  freopen("scmax.in","r",stdin);
	  freopen("scmax.out","w",stdout);
	     scanf("%ld\n",&n);
	 for(i=1;i<=n;i++)
		 scanf("%ld",&v[i]);
	l[n]=1;
	for(k=n-1;k>=1;k--)
	{ maxim=0;
	 for(i=k+1;i<=n;i++)
		 if((v[i]>v[k])&&(l[i]>maxim))
			 maxim=l[i];
		 l[k]=1+maxim;
	}
	   maxim=l[1];
	   t=1;
	for(k=1;k<=n;k++)
		if(l[k]>maxim)
		{
			maxim=l[k];
			t=k;
		}
		printf("%ld",maxim);
		  printf("\n");
		printf("%ld ",v[t]);
		for(i=t+1;i<=n;i++)
			if((v[i]>v[t])&&(l[i]==maxim-1))
			{
				printf("%ld ",v[i]);
				maxim--;
			}
return 0;}