Cod sursa(job #33625)

Utilizator sims_glAlexandru Simion sims_gl Data 19 martie 2007 16:18:05
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

#define nm 100100

int n, a[nm], c[nm], sol;

int go(int start, int end)
{
	int i;

	for (i = start; i <= end; ++i)
		if (c[i - 3] + a[i - 1] + a[i] > c[i - 1])
			c[i] = c[i - 3] + a[i - 1] + a[i];
		else
			c[i] = c[i - 1];	

	if (sol < c[end])
		sol = c[end];
}

int main()
{
	int i;

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

	scanf("%d", &n);

	for (i = 1; i <= n; ++i)
		scanf("%d", &a[i]);

	c[1] = a[i] + a[n];
	go(4, n - 2);

	c[1] = c[3] = c[4] = 0;
	c[2] = a[1] + a[2];
	go(5, n - 1);

	c[1] = c[2] = 0;
	go(3, n);

	printf("%d\n", sol);
}