Cod sursa(job #2767389)

Utilizator DragosC1Dragos DragosC1 Data 5 august 2021 22:52:45
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <iostream>
using namespace std;

int a[100002];
int dp1[100001], dp2[100001], dp3[100001];
int n;

void read() {
    int i;
    ifstream f("oo.in");
    f >> n;
    for (i = 1; i <= n; i++) 
        f >> a[i];
    a[n + 1] = a[1];
    f.close();
}

void solve() {
    int i;
    for (i = 3; i <= n; i++)
        dp1[i] = max(dp1[i - 1], dp1[i - 3] + a[i] + a[i - 1]);
    for (i = 2; i < n; i++)
        dp2[i] = max(dp2[i - 1], (i - 3 >= 0 ? dp2[i - 3] : 0) + a[i] + a[i - 1]);
    for (i = 4; i <= n + 1; i++)
        dp3[i] = max(dp3[i - 1], dp3[i - 3] + a[i] + a[i - 1]);
}

void output() {
    ofstream g("oo.out");
    g << max(dp1[n], max(dp2[n - 1], dp3[n + 1]));
    g.close();
}

int main() {
    read();
    solve();
    output();
    return 0;
}