Pagini recente » Cod sursa (job #1064664) | Cod sursa (job #1500089) | Istoria paginii utilizator/onecrazysim | Cod sursa (job #238749) | Cod sursa (job #2014174)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int n, i, j, mx, in, sum, a, b, c, sf, x, y, z, t, v[200005], rez;
int main () {
fin >> n;
for (i = 1; i <= n; i++)
{
fin >> v[i];
v[i+n] = v[i];
}
for (in = 1; in <= 4; in++)
{
sf = in + n-4;
sum = v[sf+1]+v[sf+2];
for (i = in; i <= sf-2; i++)
{
a = b = c = -300;
t = 0; j = i;
while (j <= i+4 && j < sf)
{ t += v[j]; j++; }
a = t;
if (i+2 < sf) a -= v[i+2];
if (i+2 < sf)
{
b = t-v[i];
if (i+3 < sf) b -= v[i+3];
}
if (i+3 < sf)
{
c = t-v[i]-v[i+1];
if (i+4 < sf) c -= v[i+4];
}
// compar
if (a >= b && a >= c) { sum += v[i]+v[i+1]; i += 2; }
else if (b > a && b >= c) { sum += v[i+1]+v[i+2]; i += 3; }
else if (c > a && c > b) { sum += v[i+2]+v[i+3]; i += 4; }
}
if (sum > rez) rez = sum;
}
fout << rez << "\n";
}