Pagini recente » Cod sursa (job #1864351) | Cod sursa (job #823661) | Cod sursa (job #1914032) | Cod sursa (job #2444050) | Cod sursa (job #1995349)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
using namespace std;
int sect[100005];
int n;
int D [100005];
int dinamica(int * a)//, int dim)
{
memset(D, 0, 100005);
D[1]=a[1];
D[2]=a[2] + D[1];
for(int i=3;i<n;++i)
if(i<5)
D[i]=D[i-1];
else
D[i]=max(D[i-1], D[i-3] + a[i-1] + a[i]);
return D[n-1];
}
int main ()
{
ifstream in ("oo.in");
ofstream out ("oo.out");
int d;
int maxim = -2e9;
in>>n;
for (int i=1;i<=n;++i)
in>>sect[i];
sect[n+1]=sect[1];
sect[n+2]=sect[2];
sect[n+3]=sect[3];
for(int i=0;i<3;++i)
{
//cout<<"\nIncep la v+ "<<i<<"\n";
d=dinamica(sect+i);//, n+i);
if (maxim < d)
maxim = d;
}
out<<maxim;
return 0;
}