Pagini recente » Cod sursa (job #226524) | Cod sursa (job #903184) | Cod sursa (job #1315703) | Cod sursa (job #1127904) | Cod sursa (job #2767389)
#include <fstream>
#include <iostream>
using namespace std;
int a[100002];
int dp1[100001], dp2[100001], dp3[100001];
int n;
void read() {
int i;
ifstream f("oo.in");
f >> n;
for (i = 1; i <= n; i++)
f >> a[i];
a[n + 1] = a[1];
f.close();
}
void solve() {
int i;
for (i = 3; i <= n; i++)
dp1[i] = max(dp1[i - 1], dp1[i - 3] + a[i] + a[i - 1]);
for (i = 2; i < n; i++)
dp2[i] = max(dp2[i - 1], (i - 3 >= 0 ? dp2[i - 3] : 0) + a[i] + a[i - 1]);
for (i = 4; i <= n + 1; i++)
dp3[i] = max(dp3[i - 1], dp3[i - 3] + a[i] + a[i - 1]);
}
void output() {
ofstream g("oo.out");
g << max(dp1[n], max(dp2[n - 1], dp3[n + 1]));
g.close();
}
int main() {
read();
solve();
output();
return 0;
}