Cod sursa(job #73523)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 19 iulie 2007 10:27:01
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#define val 100001

long a[val];
long long s,e,n,q;
long long suma,w;


void citire()
{
	freopen("oo.in","r",stdin);
	scanf("%ld", &n);
	for (long i=0; i<n; i++)
		scanf("%ld", &a[i]);
	fclose(stdin);
}

void rezolvare(long l,long o,long p)
{
	if (l+1==n)
		w=a[l]+a[0];
	else w=a[l]+a[l+1];
	s=0;
	e=-10;
	for (long i=o+1; i<=p; i++)
	{
		q=a[i]+a[i-1];
		if (i-2>e)
			{
			w+=q;
			s=q;
			e=i;
			}
		else if (q>s && i-2<=e)
		{
			w-=s;
			w+=q;
			s=q;
			e=i;
		}
	}
	if (w>suma)
		suma=w;
}

void printare()
{
	freopen("oo.out","w",stdout);
	printf("%lld\n",suma);
	fclose(stdout);
}

int main()
{
	citire();
	suma=0;
	rezolvare(0,3,n-2);
	rezolvare(1,4,n-1);
	rezolvare(n-1,2,n-3);
	printare();
	return 0;
}