Pagini recente » Cod sursa (job #737886) | Cod sursa (job #2507334) | Cod sursa (job #31027) | Borderou de evaluare (job #508711) | Cod sursa (job #1767293)
#include<bits/stdc++.h>
#define maxN 100005
using namespace std;
int d[maxN],v[maxN],n,val;
inline int max(int a,int b)
{
return a>b?a:b;
}
inline int solve (int st,int dr)
{
if(st>=dr) return 0;
d[st]=0;
d[st-1]=0;
d[st+1]=v[st]+v[st+1];
for(int i=st+2;i<=dr;i++)
{
d[i]=max(d[i-1],v[i]+v[i-1]+d[i-3]);
}
return d[dr];
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&v[i]);
val=max(max(solve(1,n-1),solve(2,n)),v[1]+v[n]+solve(3,n-2));
printf("%d\n",val);
return 0;
}