Pagini recente » Cod sursa (job #3041061) | Cod sursa (job #3142892) | Cod sursa (job #682584) | Cod sursa (job #2635404) | Cod sursa (job #2510851)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
#define NMAX 100003
int n, v [NMAX], dp [NMAX][3];
int main (){
fin >> n;
for (int i = 1; i <= n; i ++)
fin >> v [i];
v [n + 1] = v [1];
v [n + 2] = v [2];
dp [2][0] = v [1] + v [2];
dp [3][1] = v [2] + v [3];
dp [4][2] = v [3] + v [4];
for (int i = 3; i < n; i ++)
dp [i][0] = max (dp [i - 1][0], dp [i - 3][0] + v [i] + v [i - 1]);
for (int i = 4; i <= n; i ++)
dp [i][1] = max (dp [i - 1][1], dp [i - 3][1] + v [i] + v [i - 1]);
for (int i = 5; i <= n + 1; i ++)
dp [i][2] = max (dp [i - 1][2], dp [i - 3][2] + v [i] + v [i - 1]);
fout << max (dp [n - 1][0], max (dp [n][1], dp [n + 1][2]));
return 0;
}