Cod sursa(job #1041883)

Utilizator tudorv96Tudor Varan tudorv96 Data 26 noiembrie 2013 12:34:17
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <iostream>
using namespace std;

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

const int N = 1e5 + 5;

int n, v[N], d[N], sol; //d[i] - numarul maxim de oua pe care le poate culege pana la pozitia i

int MOD(int x) {
	if (x < 0)
		return x + n;
	return x;
}

int main() {
	fin >> n;
	for (int i = 0; i < n; ++i)
		fin >> v[i];
	for (int k = -1; k < 2; ++k) {
		for (int i = k + 1; i < n + k - 1; ++i)
			d[i] = max (d[MOD(i - 1)], d[MOD(i - 3)] + v[i] + v[MOD(i - 1)]);
		sol = max (sol, d[n + k - 2]);
		for (int i = 0; i < n + 5; ++i)
			d[i] = 0;
	}
	fout << sol;
}