Pagini recente » Cod sursa (job #2245874) | Cod sursa (job #2261714) | Profil alexandru_tulbure | Profil Stoica_Tobias | Cod sursa (job #3232120)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
int dp[100001], v[100001];
int main()
{
int n, i, rez1 = 0, rez2 = 0, rez3 = 0;
cin >> n;
for(i = 1; i <= n; i++){
cin >> v[i];
}
dp[1] = 0;
dp[2] = v[1] + v[n];
for(i = 3; i <= n - 1; i++){
dp[i] = max(dp[i - 1], dp[i - 3] + v[i - 2] + v[i - 1]);
rez1 = dp[i];
}
dp[1] = dp[2] = 0;
for(i = 3; i <= n; i++){
dp[i] = max(dp[i - 1], dp[i - 3] + v[i - 2] + v[i - 1]);
rez2 = dp[i];
}
dp[1] = dp[2] = dp[3] = 0;
for(i = 4; i <= n + 1; i++){
dp[i] = max(dp[i - 1], dp[i - 3] + v[i - 2] + v[i - 1]);
rez3 = dp[i];
}
rez1 = max(rez2, rez1);
rez1 = max(rez1, rez3);
cout << rez1;
return 0;
}