Pagini recente » Cod sursa (job #2876417) | Cod sursa (job #1109498) | Cod sursa (job #1378371) | Cod sursa (job #1911888) | Cod sursa (job #1106826)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("oo.in");
ofstream g ("oo.out");
int n, sol;
int v[100003], best[100003];
void citeste () {
f >> n;
for (int i = 1; i <= n; i++) f >> v[i];
v[n + 1] = v[1];
}
void rezolva (int a, int b) {
best[a] = 0;
best[a + 1] = v[a] + v[a + 1];
for (int i = a + 2; i <= b; i++)
best[i] = max (best[i-1], best[i-3] + v[i] + v[i-1]);
if (best[b] > sol) sol = best[b];
}
int main () {
citeste ();
rezolva (1, n-1);
rezolva (2, n);
rezolva (3, n+1);
g << sol << '\n';
return 0;
}