Pagini recente » Cod sursa (job #12185) | Cod sursa (job #1204072) | Cod sursa (job #2687755) | Cod sursa (job #1708913) | Cod sursa (job #3288798)
#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 -2e9;
for(int i=l;i<=r;++i) d[i][0]=d[i][1]=0;
d[l+1][1]=v[l]+v[l+1];
for(int i=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]);
}
return max(d[r][0],d[r][1]);
}
int main()
{
fin>>n;
for(i=1;i<=n;++i)
{
fin>>v[i];
}
int a=max(solve(3,n-2)+v[n]+v[1],0);
int b=max(solve(4,n-1)+v[1]+v[2],solve(2,n-3)+v[n]+v[n-1]);\
//cout<<solve(4,n-3)+v[1]+v[2]+v[n]+v[n-1];
fout<<max(a,b);
return 0;
}