Cod sursa(job #1134914)

Utilizator taigi100Cazacu Robert taigi100 Data 7 martie 2014 00:30:00
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
/*
    Keep It Simple!
*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include<stdio.h>

#define MaxN 100005
#define MaxV(a,b) (a>b?a:b)

int N, v[MaxN], Dp[MaxN],max;

void Dyn(int left, int right)
{
	Dp[left - 2] = 0;
	Dp[left] = v[left] + v[left-1];
	for (int i = left + 1; i <= right; i++)
		Dp[i] = MaxV(Dp[i - 1], Dp[i - 3] + v[i] + v[i - 1]);
	max = MaxV(max, Dp[right]);
}

int main()
{
	freopen("oo.in.txt", "r", stdin);
	freopen("oo.out", "w", stdout);
	max = -1;

	scanf("%d", &N);
	
	for (int i = 1; i <= N; i++) 
		scanf("%d", &v[i]);
	v[N + 1] = v[1];

	Dyn(2,N-1);
	Dyn(3,N);
	Dyn(4,N+1);

	printf("%d", max);

}