Pagini recente » Cod sursa (job #2508183) | Cod sursa (job #474210) | Cod sursa (job #3214358) | Cod sursa (job #2203284) | Cod sursa (job #2973394)
#include <bits/stdc++.h>
#define FOR(WHATEVER) for(int i = 1; i <= WHATEVER; ++ i)
using namespace std;
/// INPUT / OUTPUT
const string problem = "oo";
ifstream fin(problem + ".in");
ofstream fout(problem + ".out");
/// GLOBAL VARIABLES
const int NMAX = 1e5 + 5, MOD = 1e9 + 7, INF = 1e9;
int n;
int arr[NMAX], secv[NMAX], dp[NMAX];
inline int calc(int st, int dr)
{
dp[st + 1] = arr[st] + arr[st + 1];
for(int i = st + 2; i <= dr; ++ i)
dp[i] = max(dp[i-1], dp[i-3] + arr[i-1] + arr[i]);
int temp = dp[dr];
memset(dp, 0, sizeof(dp));
return temp;
}
/// SOLUTION
inline void solution()
{
arr[n + 1] = arr[1];
int ans = INT_MIN;
ans = max(ans, calc(1, n - 1));
ans = max(ans, calc(2, n));
ans = max(ans, calc(3, n + 1));
fout << ans;
}
/// READING THE INPUT
int main()
{
ios::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
fin >> n;
for(int i = 1; i <= n; ++ i)
fin >> arr[i];
solution();
}