Pagini recente » Cod sursa (job #1211833) | Cod sursa (job #788352) | Cod sursa (job #672528) | Cod sursa (job #1903956) | Cod sursa (job #837289)
Cod sursa(job #837289)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("oo.in");
ofstream out ("oo.out");
const int MAXN = 100010;
int V[MAXN], Best[MAXN];
inline int _max (const int &A, const int &B)
{
if (A > B)
return A;
return B;
}
int main ()
{
int N, i, Ans = 0;
in >> N;
for (i = 1; i <= N; i ++)
in >> V[i];
V[N + 1] = V[1];
Best[2] = V[1] + V[2];
for (i = 3; i <= N; i ++)
Best[i] = _max (Best[i - 1], V[i] + V[i - 1] + Best[i - 3]);
Ans = _max (Ans, Best[N]);
cout << Ans << "\n";
Best[2] = 0;
Best[3] = V[2] + V[3];
Best[4] = Best[3];
for (i = 5; i <= N; i ++)
Best[i] = _max (Best[i - 1], V[i] + V[i - 1] + Best[i - 3]);
Ans = _max (Ans, Best[N]);
cout << Ans << "\n";
Best[1] = 0, Best[2] = 0, Best[3] = 0, Best[4] = V[3] + V[4];
for (i = 5; i <= N; i ++)
Best[i] = _max (Best[i - 1], V[i] + V[i + 1] + Best[i - 2]);
Ans = _max (Ans, Best[N]);
out << Ans;
return 0;
}