Pagini recente » Cod sursa (job #792359) | Cod sursa (job #1143428) | Cod sursa (job #2952839) | Cod sursa (job #1246912) | Cod sursa (job #1053341)
#include<cstdio>
using namespace std;
int i,n,a[100009],dp[100009],ma[100009];
int max(int a,int b)
{
if(a>b) return a;
return b;
}
int det(int st,int dr)
{
dp[st]=ma[st]=ma[st-1]=0;
ma[st+1]=dp[st+1]=a[st]+a[st+1];
for(i=st+2;i<=dr;i++)
{
dp[i]=ma[i-3]+a[i]+a[i-1];
ma[i]=max(ma[i-1],dp[i]);
}
return ma[dr];
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("%d\n",max(max(det(4,n-1)+a[1]+a[2],det(2,n)),det(3,n-2)+a[1]+a[n]));
return 0;
}