Cod sursa(job #2117999)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 29 ianuarie 2018 21:36:09
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("oo.in");
ofstream out("oo.out");

int n;
unsigned long long s, maxim = -1;
int oo[100005], f[100005];

void backt()
{
    for( int i = 1; i <= n; i++ )
    {
        if( f[i] == 0 )
        {
            f[i] = 1;

            if( i == n )
                f[1] = 1, f[2] = 1;
            else
                f[i+1] = 1, f[i+2] = 1;

            if( i == 1 )
                f[n] = 1;
            else
                f[i-1] = 1;

            s += oo[i] + oo[i+1];

            maxim = max(maxim, s);

            backt();

            f[i] = 0;

            if( i == n )
                f[1] = 0, f[2] = 0;
            else
                f[i+1] = 0, f[i+2] = 0;

            if( i == 1 )
                f[n] = 0;
            else
                f[i-1] = 0;

            s -= oo[i] + oo[i+1];
        }
    }
}

int main()
{
    in>>n;
    for( int i = 1; i <= n; i++ )
        in>>oo[i];

    backt();

    out<<maxim;

    return 0;
}