Pagini recente » Cod sursa (job #1204864) | Cod sursa (job #2178306) | Cod sursa (job #73575) | Cod sursa (job #255428) | Cod sursa (job #771860)
Cod sursa(job #771860)
#include <fstream>
using namespace std;
int N;
int v[100010];
int dp[100010];
void Citire () {
ifstream fin ("oo.in");
fin >> N;
for (int i = 1; i <= N; i++)
fin >> v[i];
v[N + 1] = v[1];
fin.close ();
}
int Business () {
int lol = 0;
dp[1] = 0;
dp[2] = v[2] + v[1];
for (int i = 3; i < N; i++)
{
dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
}
lol = max (lol, dp[N - 1]);
dp[2] = 0;
dp[3] = v[3] + v[2];
for (int i = 4; i <= N; i++)
{
dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
}
lol = max (lol, dp[N]);
dp[3] = 0;
dp[4] = v[3] + v[4];
for (int i = 5; i <= N + 1; i++)
{
dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
}
lol = max (lol, dp[N + 1]);
return lol;
}
void Scriere () {
ofstream fout ("oo.out");
fout << Business ();
fout.close ();
}
int main () {
Citire ();
Scriere ();
return 0;
}