Cod sursa(job #590298)

Utilizator Catah15Catalin Haidau Catah15 Data 16 mai 2011 17:23:22
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>

using namespace std;

#define maxN 100005


int rsp, A[maxN], sol[maxN];

int main()
{
	freopen ("oo.in", "r", stdin);
	freopen ("oo.out", "w", stdout);
	
	int N;
	
	scanf ("%d", &N);
	
	for (int i = 1; i <= N; ++ i) scanf ("%d", &A[i]);
	
	A[N + 1] = A[1];
	
	
	sol[2] = A[1] + A[2];
	
	for (int i = 3; i < N; ++ i)
	{
		sol[i] = max (sol[i - 1], sol[i - 3] + A[i] + A[i - 1]);
		
		rsp = max (rsp, sol[i]);
	}

	
	memset (sol, 0, sizeof (sol));
	
	sol[3] = A[2] + A[3];
	
	for (int i = 4; i <= N; ++ i)
	{
		sol[i] = max (sol[i - 1], sol[i - 3] + A[i] + A[i - 1]);
		
		rsp = max (rsp, sol[i]);
	}
	
	
	memset (sol, 0, sizeof (sol));
	
	sol[4] = A[3] + A[4];
	
	for (int i = 5; i <= N + 1; ++ i)
	{
		sol[i] = max (sol[i - 1], sol[i - 3] + A[i] + A[i - 1]);
		
		rsp = max (rsp, sol[i]);
	}
	
	
	
	printf ("%d", rsp);
	
	return 0;
}