Pagini recente » Cod sursa (job #512897) | Cod sursa (job #983427) | Cod sursa (job #2854887) | Cod sursa (job #1512059) | Cod sursa (job #2849217)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n, a[100003], dp1[100003], dp2[100003], dp3[100003];
int main()
{
int i;
f >> n;
for (i = 1; i <= n; i++)
f >> a[i];
dp1[2] = dp1[3] = a[1] + a[2];
dp2[3] = a[2] + a[3];
dp3[1] = a[n] + a[1];
for (i = 4; i <= n; i++)
{
if (i < n - 1) dp3[i] = max(dp3[i - 1], dp3[i - 3] + a[i] + a[i - 1]);
if (i < n) dp1[i] = max(dp1[i - 1], dp1[i - 3] + a[i] + a[i - 1]);
dp2[i] = max(dp2[i - 1], dp2[i - 3] + a[i] + a[i - 1]);
}
g << max( dp2[n], max(dp1[n - 1], dp3[n - 2] )) << "\n";
}