Pagini recente » Cod sursa (job #3244451) | Cod sursa (job #2441720) | Cod sursa (job #3124939) | Cod sursa (job #3202549) | Cod sursa (job #3280495)
#include <iostream>
#include <fstream>
std::ifstream fin("oo.in");
std::ofstream fout("oo.out");
int v[100005];
int n, add;
int dp[100006];
int solve(int start ,int end)
{
for(int i = 1; i <= n + 1; i++)
dp[i] = 0;
for(int i = start + 1; i <= end + start + 1; i++)
{
add = 0;
if(i >= 4)
{
add = dp[i - 3];
}
dp[i] = std::max(dp[i - 1], v[i] + v[i - 1] + add);
}
return dp[start + n - 2];
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> v[i];
}
v[n + 1] = v[1];
int rez = std::max(solve(1, n), std::max(solve(2, n), solve(3, n)));
fout << rez ;
return 0;
}