Pagini recente » Cod sursa (job #1084859) | Cod sursa (job #2335602) | Cod sursa (job #1535055) | Cod sursa (job #2404027) | Cod sursa (job #1966403)
#include <bits/stdc++.h>
#define MAXN 100001
using namespace std;
int n, answer, d[MAXN], v[MAXN];
int main()
{
freopen("oo.in", "r", stdin);
freopen("oo.out", "w", stdout);
int i;
scanf("%d", &n);
for(i=1; i<=n; ++i)
scanf("%d", &v[i]);
//first case
d[2] = v[1] + v[2];
for(i=3; i<n; ++i)
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
answer = d[n-1];
//second case
memset(d, 0, sizeof d);
d[3] = v[2] + v[3];
for(i=4; i<=n; ++i)
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
answer = max(answer, d[n]);
//third case
memset(d, 0, sizeof d);
d[1] = v[1] + v[n];
d[2] = d[1];
for(i=3; i<n-1; ++i)
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
answer = max(answer, d[n-2]);
printf("%d", answer);
return 0;
}