Pagini recente » Cod sursa (job #837165) | Cod sursa (job #1842443) | Cod sursa (job #691766) | Cod sursa (job #57931) | Cod sursa (job #2744538)
#include <fstream>
using namespace std;
ifstream cin("oo.in");
ofstream cout("oo.out");
int dp[4][100001],v[100001];
int main()
{
int n,i;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
dp[1][1]=v[1];/// n,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,2
for(i=3;i<n;i++)
{
if(i>=4)
dp[2][i]=max(dp[2][i-1],dp[2][i-3]+v[i-1]+v[i]);
if(i!=n-1)
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(dp[1][n-1],max(dp[2][n-1]+v[n],dp[3][n-1]+v[n-1]+v[n]));
return 0;
}