Cod sursa(job #2295016)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 2 decembrie 2018 23:57:02
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <iostream>
#define Nmax 100002

using namespace std;

int n;
int a[Nmax];
int b[Nmax];
int ans;

void read()
{
    scanf("%d", &n);
    for ( int i = 1; i <= n; i++ )
        scanf("%d", &a[i]);
}

void go()
{
    b[2] = a[1] + a[2];
    for ( int i = 3; i <= n; i++ )
        b[i] = max(b[i-1], a[i] + a[i-1] + b[i-3]);
    ans = max(ans, b[n-1]);


    b[2] = 0;
    for ( int i = 3; i <= n; i++ )
        b[i] = max(b[i-1], a[i] + a[i-1] + b[i-3]);
    ans = max(ans, b[n]);

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

int main()
{
    freopen ("oo.in", "r", stdin);
    freopen ("oo.out", "w", stdout);
    read();
    go();
    printf("%d\n", ans);
    return 0;
}