Cod sursa(job #40638)

Utilizator webspiderDumitru Bogdan webspider Data 27 martie 2007 16:29:06
Problema Oo Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <iostream>

using namespace std;

int sir[100001];
int din[100001];
int maxm;
int n;

int main()
{
	int i,j,l;

	freopen("oo.in","r",stdin);
	freopen("oo.out","w",stdout);

	scanf("%d\n", &n);
	for ( i = 1; i <= n; i++ )
		scanf("%d ", &sir[i] );
	sir[0] = sir[n];
	sir[n+1] = sir[1];
	for ( l = 0; l <= 3; l++ )
	{
		for ( i = 0; i <= n; i++ )
			din[i] = 0;
		din[l] = sir[l] + sir[l+1];
		for ( i = l+3; i < n-(3-l); i++ )
		{
			din[i] = sir[i] + sir[i+1];
			for ( j =3; j <= 5; j++ )
				if ( i-j >= l )
				din[i] = max( din[i], din[i-j]+sir[i]+sir[i+1] );
			if ( din[i] > maxm ) maxm = din[i];
		}
	}

	printf("%d\n", maxm );

	fclose(stdin);
	fclose(stdout);

	return 0;
}