Cod sursa(job #1346773)

Utilizator Theodor1000Cristea Theodor Stefan Theodor1000 Data 18 februarie 2015 16:53:54
Problema Oo Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int v[100010], d[100010];

int main ()
{
    freopen ("oo.in", "r", stdin);
    freopen ("oo.out", "w", stdout);

    int n;
    scanf ("%d", &n);

    for (int i = 1; i <= n; ++i)
        scanf ("%d", &v[i]);

    d[1] = d[2] = v[1] + v[n];

    for (int i = 3; i < n - 1; ++i)
        d[i] = max (d[i - 1], d[i - 3] + v[i] + v[i - 1]);

    int ma = d[n - 2];
    for (int i = 1; i <= n; ++i)
        d[i] = 0;

    d[2] = v[1] + v[2];

    for (int i = 3; i < n; ++i)
        d[i] = max (d[i - 1], d[i - 3] + v[i] + v[i - 1]);

    ma = max (ma, d[n - 2]);
    for (int i = 1; i <= n; ++i)
        d[i] = 0;

    d[3] = v[2] + v[3];
    for (int i = 4; i <= n; ++i)
        d[i] = max (d[i - 1], d[i - 3] + v[i] + v[i - 1]);

    ma = max (ma, d[n - 2]);

    printf ("%d\n", ma);

    return 0;
}