Cod sursa(job #2046063)

Utilizator CronosClausCarare Claudiu CronosClaus Data 23 octombrie 2017 13:04:22
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

const int mxn = 100 * 1000 + 1;

int n, marime;
int v1[ mxn ];
vector< int > v2;

inline int poz(int k){
    if(k < 0)
        return n - k;
    return k % n;
}

void stergere(int k){
    marime -= 5;
    for(int i = k - 2; i <= k + 2; i++)
        v2[ poz( i ) ] = 0;
}

int main()
{
    freopen("oo.in", "r", stdin);
    freopen("oo.out", "w", stdout);
    cin>> n;
    v2.resize( n );
    marime = n;
    scanf("%d", &v1[ 0 ]);
    for(int i = 1; i < n; i++){
        scanf("%d", &v1[ i ]);
        v2[ i ] = v1[ i ] + v1[ i - 1 ];
    }
    v2[ 0 ] = v1[ 0 ] + v1[ n - 1 ];
    int mxi, mx, s = 0;
    while(marime > 0){
        mx = 0;
        for(int i = 0; i < n; i++)
            if(mx < v2[ i ]){
                mx = v2[ i ];
                mxi = i;
            }
        stergere( mxi );
        s += mx;
    }
    cout<< s;
    return 0;
}