Pagini recente » Cod sursa (job #503540) | Cod sursa (job #639738) | Cod sursa (job #3343393) | Cod sursa (job #3349899) | Cod sursa (job #3311129)
#include <bits/stdc++.h>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n, a[100005], dp[100005], ans = 0;
int main()
{
f >> n;
for (int i=1; i<=n; ++i)
f >> a[i];
// iau 1 si 2
dp[0] = 0;
dp[1] = a[1]; dp[2] = a[1] + a[2]; dp[3] = dp[2];
for (int i=5; i<=n-1; ++i)
dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
ans = max (ans, dp[n-1]);
//cout << "1 " << ans << endl;
// iau n si n-1
dp[1] = 0; dp[2] = a[2];
for (int i=3; i<=n-3; ++i)
dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
ans = max (ans, dp[n-3] + a[n-1] + a[n]);
//cout << "2 " << ans << endl;
// iau 1 si n
dp[1] = a[1]; dp[2] = dp[1];
for (int i=4; i<=n-2; ++i)
dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
ans = max (ans, dp[n-2] + a[n]);
//cout << "3 " << ans << endl;
g << ans;
return 0;
}