Pagini recente » Cod sursa (job #666430) | Cod sursa (job #1592451) | Cod sursa (job #1484190) | Cod sursa (job #898584) | Cod sursa (job #2506740)
#include<fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int nmax = 100000;
int n, arr[nmax+5], dp[nmax+5], sol;
void Read() {
in >> n;
for (int i = 1; i <= n; i++)
in >> arr[i];
arr[n+1] = arr[1];
}
void Solve (int low, int hi) {
dp[low] = 0;
dp[low+1] = arr[low] + arr[low+1];
for (int i = low+2; i <= hi; i++)
dp[i] = max (dp[i-1], dp[i-3] + arr[i] + arr[i-1]);
sol = max (sol, dp[hi]);
}
int main() {
Read();
Solve(1,n-1);
Solve(2,n);
Solve(3,n+1);
out << sol << '\n';
}