Cod sursa(job #1966342)

Utilizator LittleWhoFeraru Mihail LittleWho Data 15 aprilie 2017 10:16:03
Problema Oo Scor 100
Compilator cpp Status done
Runda simulare_005 Marime 0.87 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

#define MAX_N 100001

int a[MAX_N];
int v[MAX_N];

int main()
{
    ifstream in("oo.in");
    ofstream out("oo.out");

    int n;
    int sol;

    in >> n;
    for (int i = 1; i <= n; i++) {
        in >> a[i];
    }
    v[1] = a[1] + a[n];

    for (int i = 3; i <= n; i++) {
        v[i] = max(v[i - 1], v[i - 3] + a[i - 1] + a[i]);
    }
    sol = v[n - 2];

    v[1] = 0;
    v[2] = a[2] + a[1];
    for (int i = 3; i <= n; i++) {
        v[i] = max(v[i - 1], v[i - 3] + a[i - 1] + a[i]);
    }
    sol = max(sol, v[n - 1]);

    v[1] = v[2] = 0;
    v[3] = a[2] + a[3];
    for (int i = 4; i <= n; i++) {
        v[i] = max(v[i - 1], v[i - 3] + a[i - 1] + a[i]);
    }
    sol = max(sol, v[n]);

    out << sol << "\n";

    return 0;
}