Cod sursa(job #464081)

Utilizator alisssiaMititelu Andra alisssia Data 18 iunie 2010 17:51:58
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
using namespace std;
#include<cstdio>
#define nmax 10001
float a[nmax];
int cre[nmax], des[nmax],i,j,n,max;

int main()
{
	freopen("euro2.in","r",stdin);
	freopen("euro2.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%f",&a[i]);
	des[n]=1;
	for(i=n-1;i;i--)
	{
		max=0;
		for(j=i+1;j<=n;j++)
			if(a[i]>a[j] && des[j]>max)
				max=des[j];
		des[i]=1+max;
	}
	cre[1]=1;
	for(i=2;i<=n;i++)
	{
		max=0;
		for(j=1;j<i;j++)
			if(a[i]>a[j] && cre[j]>max)
				max=cre[j];
		cre[i]=1+max;
	}
	max=0;
	for(i=1;i<=n;i++)
		if(cre[i]+des[i]>max && cre[i]>1 && des[i]>0) max=cre[i]+des[i];
	printf("%d\n",max-1);
	return 0;
}