Pagini recente » Cod sursa (job #1392711) | Istoria paginii runda/fminostress | Cod sursa (job #550564) | Cod sursa (job #2230209) | Cod sursa (job #1305858)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("oo.in");
ofstream g ("oo.out");
const int NMAX = 100000 + 3;
int n;
int sol;
int v[NMAX];
int best[NMAX];
void citeste() {
f >> n;
for (int i = 1; i <= n; i++) f >> v[i];
v[n + 1] = v[1];
}
void rezolva(int start, int sfarsit) {
best[start] = 0;
best[start + 1] = v[start] + v[start + 1];
for (int i = start + 2; i <= sfarsit; i++)
best[i] = max(best[i - 3] + v[i - 1] + v[i], best[i - 1]);
sol = max(best[sfarsit], sol);
}
int main() {
citeste();
rezolva(1, n - 1);
rezolva(2, n);
rezolva(3, n + 1);
g << sol << '\n';
}