Pagini recente » Cod sursa (job #284021) | Cod sursa (job #726914) | Cod sursa (job #1950618) | Cod sursa (job #2225024) | Cod sursa (job #2767435)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
long long n, v[100001], dp[100001], rez;
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
fin>>v[i];
///cazul 1
dp[1] = v[1];
dp[2] = v[1] + v[2];
dp[3] = v[1] + v[2];
for(int i=4; i<n; i++)
dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
rez=dp[n-1];
///cazul 2
dp[1]=v[1]+v[n];
dp[2]=dp[1];
dp[3]=dp[2];
for(int i=4; i<n-1; i++)
dp[i]=max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
rez=max(rez, dp[n-2]);
///cazul 3
dp[1]=0;
dp[2]=v[2];
dp[3]=v[2]+v[3];
for(int i=4; i<=n; i++)
dp[i]=max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
rez=max(rez, dp[n]);
fout<<rez;
return 0;
}