Pagini recente » Cod sursa (job #267351) | Cod sursa (job #2113392) | Cod sursa (job #2554902) | Cod sursa (job #1641468) | Cod sursa (job #33672)
Cod sursa(job #33672)
#include <stdio.h>
#define nmax 100111
#define FOR(i,s,d) for(i=(s);i<(d);++i)
int n,sol,A[nmax],B[nmax];
inline int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
int i;
FOR(i,0,n)
scanf("%d",&A[i]);
sol=B[2]=B[1]=B[0]=A[0]+A[n-1];
FOR(i,3,n)
{
B[i]=max(B[i-1],A[i]+A[i-1]+B[i-3]);
if(i<n-2)
sol=max(sol,B[i]);
}
B[0]=0;
B[2]=B[1]=A[0]+A[1];
sol=max(B[2],sol);
FOR(i,3,n)
{
B[i]=max(B[i-1],A[i]+A[i-1]+B[i-3]);
if(i<n-1)
sol=max(sol,B[i]);
}
B[0]=B[1]=0;
B[2]=A[1]+A[2];
sol=max(sol,B[2]);
FOR(i,3,n)
{
B[i]=max(B[i-1],A[i]+A[i-1]+B[i-3]);
sol=max(sol,B[i]);
}
printf("%d\n",sol);
return 0;
}