Cod sursa(job #2014045)

Utilizator shantih1Alex S Hill shantih1 Data 22 august 2017 20:11:33
Problema Oo Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");

int n, i, mx, in, sum, a, b, c, sf, x, y, z, 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 <= 10; in++)
    {
        sf = in + n-4;
        sum = v[sf+1]+v[sf+2];
        
        for (i = in; i <= sf-2; i++)
        {
            // calculez a
            a = v[i]+v[i+1]-v[i+2];
            x = v[i]+v[i+1];
            if (i+2 >= sf)   a += v[i+2];
            
            // calculez b
            if (i+2 < sf)
            {
                b = v[i+1]+v[i+2]-v[i]-v[i+3];
                y = v[i+1]+v[i+2];
                if (i+3 >= sf)   b += v[i+3];
            }
            // calculez c
            if (i+3 < sf)
            {
                c = v[i+2]+v[i+3]-v[i+1]-v[i+4];
                z = v[i+2]+v[i+3];
                if (i+4 >= sf)   c += v[i+4];
            }
            // compar
            if (a > b && a > c)  {  i += 2; sum += x;   a = -300;}
            else if (b > a && b > c)  {  i += 3; sum += y;  b = -300;}
            else if (c > a && c > b)  {  i += 4; sum += z;  c = -300;}
        }
        
        if (sum > rez)  rez = sum;
    }
    
    fout << rez << "\n";
}