Cod sursa(job #2506740)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 8 decembrie 2019 18:09:06
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int nmax = 100000;
int n, arr[nmax+5], dp[nmax+5], sol;

void Read() {
    in >> n;
    for (int i = 1; i <= n; i++)
        in >> arr[i];
    arr[n+1] = arr[1];
}

void Solve (int low, int hi) {
    dp[low] = 0;
    dp[low+1] = arr[low] + arr[low+1];
    for (int i = low+2; i <= hi; i++)
        dp[i] = max (dp[i-1], dp[i-3] + arr[i] + arr[i-1]);
    sol = max (sol, dp[hi]);
}

int main() {
    Read();
    Solve(1,n-1);
    Solve(2,n);
    Solve(3,n+1);
    out << sol << '\n';
}