Pagini recente » Cod sursa (job #33728) | Cod sursa (job #1581414) | Cod sursa (job #2779920) | Cod sursa (job #753698) | Cod sursa (job #1559924)
#include <bits/stdc++.h>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
//http://www.infoarena.ro/problema/oo
#define MAX 100008
int g[MAX],dp[MAX];
long long rez(int mod,int n)
{ for(int i=0;i<=n;i++)
dp[i]=0;
dp[mod+1]=g[mod]+g[mod+1];
for(int i=mod+2;i<=n;i++)
dp[i]=max(dp[i-1],dp[i-3]+g[i-1]+g[i]);
//am luat/iau
return dp[n];
}
int main()
{ long long ans=-1;
int n;
in>>n;
for(int i=1;i<=n;i++)
in>>g[i];
g[n+1]=g[1];
for(int i=1;i<=3;i++)
ans=max(ans,rez(i,n+i-2));
out<<ans;
return 0;
}