Pagini recente » Cod sursa (job #356152) | Cod sursa (job #1037073) | Cod sursa (job #444052) | Cod sursa (job #763062) | Cod sursa (job #2820615)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("oo.in");
ofstream fout ("oo.out");
int n , dp1[100005], a[100005], dp2[100005];
/**
1 2 3 4 5
dp[i - 3] + a[i - 1] + a[i] , dp[i - 1]
*/
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
dp1[1] = a[1] + a[2];
dp1[2] = dp1[1];
for (int i = 3; i < n - 1; i++)
dp1[i] = max (dp1[i - 1], dp1[i - 3] + a[i] + a[i + 1]);
dp2[1] = 0;
dp2[2] = a[2] + a[3];
for (int i = 3; i < n; i++)
dp2[i] = max (dp2[i - 1], dp2[i - 3] + a[i] + a[i + 1]);
int maxim = 0;
for (int i = 1; i <= n; i++)
maxim = max ({dp1[i], dp2[i], maxim});
fout << maxim << "\n";
return 0;
}