Pagini recente » Cod sursa (job #1314434) | Cod sursa (job #1377303) | Cod sursa (job #3324157) | Diferente pentru problema/cri intre reviziile 4 si 17 | Cod sursa (job #3341518)
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
#define nmax 100005
int n, v[nmax], p[nmax];
vector <int> dp;
int main()
{
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i];
}
for (int i = 1; i <= n; i++) {
p[i] = v[i] + v[i % n + 1];
}
dp[0] = 0;
dp[1] = max(0, p[1]);
for (int i = 2; i < n; i++) {
dp[i] = max(dp[i - 1], dp[i - 2] + p[i]);
}
int ans = dp[n - 1];
dp[1] = 0;
dp[2] = max(0, p[2]);
for (int i = 3; i <= n; i++) {
dp[i] = max(dp[i - 1], dp[i - 2] + p[i]);
}
ans = max(ans, dp[n]);
fout << ans;
}