Pagini recente » Cod sursa (job #1039479) | Cod sursa (job #239207) | Cod sursa (job #2183055) | Cod sursa (job #2564439) | Cod sursa (job #2371371)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
int N, sol;
int v[NMAX], dp[NMAX];
int main(){
freopen("oo.in", "r", stdin);
freopen("oo.out", "w", stdout);
scanf("%d", &N);
for(int i = 1; i <= N; i++)
scanf("%d", &v[i]);
dp[1] = v[1]; dp[2] = v[1] + v[2];
for(int i = 3; i < N; i++)
dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
sol = dp[N-1];
dp[1] = 0; dp[2] = v[2];
for(int i = 3; i <= N; i++)
dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
sol = max(dp[N], sol);
dp[2] = dp[1] = v[2] + v[1];
for(int i = 3; i <= N - 2; i++)
dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
sol = max(dp[N], sol);
printf("%d", sol);
return 0;
}