Pagini recente » Cod sursa (job #1164468) | Cod sursa (job #2510113) | Cod sursa (job #771853) | Cod sursa (job #2149087) | Cod sursa (job #1336043)
#include <iostream>
#include <fstream>
#define Nmax 100005
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int n,x[Nmax];
int DP[Nmax];
int sol=-1;
void read()
{
fin>>n;
int i;
for(i=1;i<=n;i++)
fin>>x[i];
x[n+1]=x[1];
}
void dinamica(int start, int finish)
{
///DP[i]=nr maxim de oua adunate pana in sectorul i
DP[start]=0;
DP[start+1]=x[start]+x[start+1];
for(int i=start+2;i<=finish;i++)
DP[i]=max(DP[i-1],DP[i-3]+x[i]+x[i-1]);
sol=max(sol,DP[finish]);
}
int main()
{
read();
dinamica(1,n-1);
dinamica(2,n);
dinamica(3,n+1);
fout<<sol;
return 0;
}