Pagini recente » Cod sursa (job #1829487) | Cod sursa (job #2822972) | Cod sursa (job #148029) | Cod sursa (job #1005563) | Cod sursa (job #1237200)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
const int NMAX=100005;
int n,a[NMAX],dp[NMAX];
int main()
{
int i,maximal=-1;
fin>>n;
for (i=2;i<=n+1;i++) fin>>a[i];
if (n==2) {cout<<a[1]+a[2]<<"\n";return 0;}
for (i=4;i<=n+1;i++)
{
dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
maximal=max(maximal,dp[i]);
}
for (i=2;i<=n+1;i++) dp[i]=0;
for (i=3;i<=n;i++)
{
dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
maximal=max(maximal,dp[i]);
}
for (i=2;i<=n+1;i++) dp[i]=0;
dp[2]=a[2]+a[n+1];
maximal=max(maximal,dp[2]);
for (i=3;i<n;i++)
{
dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
maximal=max(maximal,dp[i]);
}
fout<<maximal<<"\n";
return 0;
}