Cod sursa(job #3269129)

Utilizator not_anduAndu Scheusan not_andu Data 18 ianuarie 2025 11:20:12
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

#define INFILE "oo.in"
#define OUTFILE "oo.out"

const int N_MAX = 1e5;

int n;
short v[N_MAX + 5];

int operatie(int index){
    int d[N_MAX + 5];
    memset(d, 0, sizeof d);
    for(int i = index + 1; i < index + n - 1; ++i){
        if(i - 3 < 0){
            d[i] = max(d[i - 1], d[0] + v[i - 1] + v[i]);
        }
        else{
            d[i] = max(d[i - 1], d[i - 3] + v[i - 1] + v[i]);
        }
    }
    return d[index + n - 2];
}

void solve(){

    cin >> n;
    for(int i = 1; i <= n; ++i) cin >> v[i];
    v[n + 1] = v[1];

    int sum1 = operatie(1);
    int sum2 = operatie(2);
    int sum3 = operatie(3);

    cout << max(sum1, max(sum2, sum3)) << '\n';

}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    freopen(INFILE, "r", stdin);
    freopen(OUTFILE, "w", stdout);
    solve();
    return 0;
}