Pagini recente » Cod sursa (job #3171201) | Cod sursa (job #2796497) | Cod sursa (job #3190137) | Cod sursa (job #57989) | Cod sursa (job #131200)
Cod sursa(job #131200)
#include<stdio.h>
#include<string.h>
#define maxn (1<<17)
long n,s[maxn],a[maxn],sol;
long max(long a,long b)
{
if( a >b) return a;
return b;
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%ld",&n);
for( long i = 1; i <= n; ++i)
{
scanf("%ld",&a[i]);
}
n--;
s[0] = 0;
s[1] = 0;
s[2] = a[1]+a[2];
for(long i = 3; i <= n; ++i)
s[i] = max(s[i-1], s[i-3] + a[i-1] +a[i]);
sol = s[n];
memset(s,0,sizeof(s));
s[3] = a[2] + a[3];
n++;
for(long i = 3; i <= n; ++i)
s[i] = max(s[i-1], s[i-3] + a[i-1] +a[i]);
sol = max(sol,s[n]);
memset(s,0,sizeof(s));
for(long i = 4; i < n; ++i)
s[i] = max(s[i-1], s[i-3] + a[i-1] +a[i]);
sol = max(sol,s[n]+a[1] + a[n]);
printf("%ld\n",sol);
return 0;
}