Pagini recente » Cod sursa (job #3195137) | Cod sursa (job #772321) | Cod sursa (job #550206) | Cod sursa (job #1392323) | Cod sursa (job #59923)
Cod sursa(job #59923)
#include <stdio.h>
#define NMAX 100002
long int a[NMAX],n,i,j,k,b[NMAX];
long int v[NMAX];
void citire()
{
freopen("oo.in","rt",stdin);
freopen("oo.out","wt",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
{scanf("%ld",&a[i]);
b[i-1]=a[i-1]+a[i];
}
b[n]=a[n]+a[1];
}
long int MAXX(long int a, long int b)
{
if (a>b) return a;
return b;
}
void solve()
{
long int max=0;
v[1]=b[1];
v[2]=MAXX(b[1],b[2]);
v[3]=MAXX(b[3],v[2]);
for (i=4;i<=n-2;i++)
v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=v[n-2];
v[2]=b[2];
v[3]=MAXX(b[3],v[2]);
v[4]=MAXX(b[4],v[3]);
for (i=5;i<=n-1;i++)
v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=MAXX(max,v[n-1]);
v[3]=b[3];
v[4]=MAXX(b[4],v[3]);
v[5]=MAXX(b[5],v[4]);
for (i=6;i<=n;i++)
v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=MAXX(max,v[n]);
printf("%ld",max);
}
int main()
{
citire();
solve();
}