Cod sursa(job #3269124)

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

using namespace std;

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

const int N_MAX = 25e3;

int n;
int v[N_MAX + 1];

int operatie(int index){

    int d[N_MAX + 1];
    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;
}