Cod sursa(job #1702393)

Utilizator hantoniusStan Antoniu hantonius Data 15 mai 2016 09:55:35
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#define maxn 100005
using namespace std;

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

int a[maxn], b[maxn], answ, n;

int maxim(int x, int y) {
    if (x >= y)
        return x;
    return y;
}

void read() {
    fin >> n;
    for (int i=1; i<=n; i++)
        fin >> a[i];
}

void solve() {
    int i;

    b[2] = a[1] + a[2];
    for (i=3; i<=n; i++)
        b[i] = maxim(b[i-1], a[i-1] + a[i] + b[i-3]);
    answ = b[n-1];

    b[2] = 0;
    for (i=3; i<=n; i++)
        b[i] = maxim(b[i-1], a[i-1] + a[i] + b[i-3]);
    answ = maxim(answ, b[n]);

    b[1] = b[2] = a[1] + a[n];
    for (i=3; i<=n-2; i++)
        b[i] = maxim(b[i-1], a[i-1] + a[i] + b[i-3]);
    answ = maxim(answ, b[n-2]);
}

int main()
{
    read();
    solve();
    fout << answ;
    return 0;
}