Pagini recente » Cod sursa (job #2896089) | Cod sursa (job #750968) | Cod sursa (job #2903514) | Cod sursa (job #1687092) | Cod sursa (job #2744568)
#include <fstream>
using namespace std;
ifstream cin("oo.in");
ofstream cout("oo.out");
int dp[4][100101],v[100101];
int main()
{
int n,i;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
dp[1][1]=v[1];
dp[1][2]=dp[1][3]=dp[1][4]=v[1]+v[2]; ///luam 1,2
dp[2][1]=dp[2][2]=dp[2][3]=v[1]; ///luam n,1 (nu luam 2)
dp[3][1]=0; ///nu luam 1
for(i=3;i<n;i++)
{
if(i>=4 && i<n-1)
dp[2][i]=max(dp[2][i-1],dp[2][i-3]+v[i-1]+v[i]);
if(i<n-2)
dp[3][i]=max(dp[3][i-1],dp[3][i-3]+v[i-1]+v[i]);
if(i>=5)
dp[1][i]=max(dp[1][i-1],dp[1][i-3]+v[i-1]+v[i]);
}
cout<<max(-1,max(dp[1][n-1],max(dp[2][n-2]+v[n],dp[3][n-3]+v[n-1]+v[n])));
return 0;
}