Cod sursa(job #2122568)

Utilizator SenibelanMales Sebastian Senibelan Data 5 februarie 2018 11:54:30
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream in("oo.in");
ofstream out("oo.out");

const int NMAX = 100005;
int N, sol;
int V[NMAX], DP[NMAX];

int main(){
    in >> N;
    for(int i = 1; i <= N; ++i)
        in >> V[i];
    DP[2] = V[1] + V[2];
    for(int i = 4; i <= N - 1; ++i)
        DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
    sol = DP[N - 1];
    DP[1] = DP[2] = 0;
    DP[3] = V[2] + V[3];
    for(int i = 4; i <= N; ++i)
        DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
    sol = max(sol, DP[N]);
    DP[1] = DP[2] = DP[3] = 0;
    for(int i = 4; i <= N; ++i)
        DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
    sol = max(sol, max(DP[N], V[1] + V[N] + DP[N - 2]));
    out << sol << "\n";
    return 0;
}