Pagini recente » Cod sursa (job #1332337) | Cod sursa (job #315134) | Cod sursa (job #741317) | Cod sursa (job #2766347) | Cod sursa (job #1561225)
#include <stdio.h>
#include <cstring>
#include <algorithm>
#define nmax 100010
using namespace std;
int n,sol;
int t[nmax],dp[nmax];
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&t[i]);
for (int i=1;i<=n-2;i++)
dp[i]=max(dp[i-1],dp[i-3]+t[i]+t[i+1]);
sol=max(sol,dp[n-2]); t[0]=t[n];
memset(dp,0,sizeof(dp));
for (int i=2;i<=n-1;i++)
dp[i]=max(dp[i-1],dp[i-3]+t[i]+t[i+1]);
sol=max(sol,dp[n-1]); t[n+1]=t[1];
memset(dp,0,sizeof(dp));
for (int i=3;i<=n;i++)
dp[i]=max(dp[i-1],dp[i-3]+t[i]+t[i+1]);
sol=max(sol,dp[n]);
printf("%d",sol);
return 0;
}