Pagini recente » Cod sursa (job #2365253) | Cod sursa (job #1108386) | Cod sursa (job #1073109) | Cod sursa (job #687958) | Cod sursa (job #1041883)
#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;
}