Cod sursa(job #794300)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 6 octombrie 2012 10:01:54
Problema Oo Scor 100
Compilator cpp Status done
Runda dinamica_i Marime 0.61 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream fi ("oo.in");
ofstream fo ("oo.out");

const int dim = 100005;
int N, MAX, A[dim], D[dim];

void cit ()
{
	fi >> N;
	for (int i = 1; i <= N; i++)
		fi >> A[i];
	A[N + 1] = A[1];
}

void rez ()
{
	for (int start = 1; start <= 3; start++)
	{
		D[start - 1] = D[start] = 0;
		D[start + 1] = A[start] + A[start + 1];
		for (int i = start + 2; i <= N + start - 2; i++)
		{
			D[i] = max (D[i-1], D[i-3] + A[i-1] + A[i]);
			MAX = max (D[i], MAX);
		}
	}
	fo << MAX;
}

int main ()
{
	cit ();
	rez ();
	return 0;
}