Pagini recente » Cod sursa (job #3223262) | Cod sursa (job #1871147) | Cod sursa (job #2257861) | Cod sursa (job #1285321) | Cod sursa (job #3288794)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
const int N=1e5+5;
int n,i,j,v[N],d[N][2];
int solve(int l,int r)
{
if(l>r) return 0;
for(int i=l;i<=r;++i) d[i][0]=d[i][1]=0;
if(l==1)d[l+1][1]=v[l]+v[l+1];
//l=abs(l);
for(int i=abs(l)+2;i<=r;++i)
{
d[i][1]=d[i-2][0]+v[i-1]+v[i];
d[i][0]=max(d[i-1][0],d[i-1][1]);
}
if(r==n && 3<=n-2 && l>0) d[r][1]=0;
return max(d[r][0],d[r][1]);
}
int main()
{
fin>>n;
for(i=1;i<=n;++i)
{
fin>>v[i];
}
fout<<max(max(solve(1,n),solve(3,n-2)+v[1]+v[n]),solve(-1,n));
return 0;
}