Pagini recente » Cod sursa (job #2580968) | Cod sursa (job #1711071) | Cod sursa (job #665700) | Cod sursa (job #2160866) | Cod sursa (job #2069212)
#define DM 100001
#include <fstream>
using namespace std;
ifstream fi ("oo.in");
ofstream fo ("oo.out");
int n, dp[DM], v[DM], x[DM], mx;
int main()
{
fi >> n;
for (int i = 1; i <= n; ++i)
fi >> v[i];
if (n == 2)
{
fo << v[1] + v[2];
return 0;
}
dp[1] = v[1] + v[n], dp[2] = v[2] + v[1];
dp[3] = max(max(dp[1], dp[2]), v[3] + v[2]);
for (int i = 4; i < n - 1; ++i)
dp[i] = max(dp[i-3] + v[i] + v[i-1], max(dp[i-1], dp[i-2]));
mx = dp[n-2];
dp[1] = dp[2] = 0;
dp[3] = v[3] + v[2];
for (int i = 4; i <= n; ++i)
dp[i] = max(dp[i-3] + v[i] + v[i-1], max(dp[i-1], dp[i-2]));
mx = max(mx, dp[n]);
fo << mx;
return 0;
}