Cod sursa(job #399772)

Utilizator Mishu91Andrei Misarca Mishu91 Data 21 februarie 2010 00:09:17
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>

using namespace std;

const int MAX_N = 100005;

ifstream fin ("oo.in");
ofstream fout ("oo.out");

int N, A[MAX_N], Sol;

int main()
{
	fin >> N;

	for(int i = 1; i <= N; ++i)
		fin >> A[i];
	A[N+1] = A[1], A[N+2] = A[2];

	for(int k = 0; k < 3; ++k)
	{
		int bst[MAX_N];
		memset(bst, 0, sizeof bst);

		for(int i = k+1; i <= N+k; ++i)
		{
			bst[i] = max(bst[i-1], bst[i-2]);
			if(i != k+1)
				bst[i] = max(bst[i], bst[i-3] + A[i] + A[i-1]);
		}

		Sol = max(Sol, bst[N+k-1]);
	}

	fout << Sol;
}