Pagini recente » Rating Denis Mih (mihdenis1) | Cod sursa (job #2078397) | Statistici Rafila Andreea (AndreeaBK201) | Cod sursa (job #1766869) | Cod sursa (job #3232126)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int NMAX = 100000 + 1;
int n;
int v[NMAX];
int calc(int caz)
{
int dp[NMAX] = {0};
int st, dr;
if(caz == 1) //1 n
{
dp[2] = v[1] + v[n];
st = 3;
dr = n-1;
}
if(caz == 2) //1 2
{
st = 3;
dr = n;
}
if(caz == 3) //2 3
{
st = 4;
dr = n+1;
}
for(int i=st; i<=dr; i++)
{
dp[i] = max(dp[i-1],
dp[i-3] + v[i-2] + v[i-1]);
}
return dp[dr];
}
int main()
{
in>>n;
for(int i=1; i<=n; i++)
{
in>>v[i];
}
int a = calc(1);
int b = calc(2);
int c = calc(3);
out<<max(
max(a, b),
c
);
return 0;
}