Cod sursa(job #695529)

Utilizator feelshiftFeelshift feelshift Data 28 februarie 2012 12:50:58
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
// http://infoarena.ro/problema/oo
#include <fstream>
using namespace std;

const int MAXSIZE = 100001;

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

int eggs,answer;
int egg[MAXSIZE],best[MAXSIZE];

void solve(int start,int stop);

int main() {
	in >> eggs;
	
	for(int i=1;i<=eggs;i++)
		in >> egg[i];
	egg[eggs+1] = egg[1];
	
	solve(3,eggs-1);
	solve(4,eggs);
	solve(5,eggs+1);
	
	out << answer << "\n";

	return (0);
}

void solve(int start,int stop) {
	best[start-2] = 0;
	best[start-1] = egg[start-2] + egg[start-1];
	
	for(int i=start;i<=stop;i++) {
		best[i] = max(best[i-1],best[i-3] + egg[i-1] + egg[i]);
		answer = max(answer,best[i]);
	}
}