Pagini recente » Cod sursa (job #2678671) | Cod sursa (job #1872262) | Cod sursa (job #1896904) | Cod sursa (job #3190032) | Cod sursa (job #3231064)
#include <bits/stdc++.h>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
int dp[100001],v[100001];
int main()
{
int n,i;
in>>n;
for(i=1;i<=n;++i)
in>>v[i];
/// caz 1 -> 1,n
dp[1]=dp[2]=dp[3]=v[1]+v[n];
for(i=4;i<=n-2;++i)
dp[i]=max(dp[i-1],dp[i-3]+v[i-1]+v[i]);
int maxi=dp[n-2];
/// caz 2 -> 1,2
dp[1]=0;
dp[2]=dp[3]=dp[4]=v[1]+v[2];
for(i=5;i<=n-1;++i)
dp[i]=max(dp[i-1],dp[i-3]+v[i-1]+v[i]);
maxi=max(maxi,dp[n-1]);
/// caz 3 -> 2,3
dp[1]=dp[2]=0;
dp[3]=dp[4]=dp[5]=v[2]+v[3];
for(i=6;i<=n;++i)
dp[i]=max(dp[i-1],dp[i-3]+v[i-1]+v[i]);
maxi=max(maxi,dp[n]);
out<<maxi;
return 0;
}