Cod sursa(job #1989816)

Utilizator DianaVelciovVelciov Diana DianaVelciov Data 8 iunie 2017 23:50:05
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

const int NMAX=100000;
int v[NMAX + 5],n,maxim,a[NMAX + 5];

void solve(int p, int u)
{
    a[p]=v[p]+v[p+1];
    a[p+1]=max(a[p],v[p+1]+v[p+2]);
    a[p+2]=max(a[p+1],v[p+2]+v[p+3]);
    for (int i = p+3; i < u; ++i)
        a[i]=max(a[i-1],a[i-3]+v[i]+v[i+1]);
    if (a[u-1] > maxim)
        maxim=a[u-1];
}

int main()
{
    in >> n;
    for (int i = 1; i <= n; ++i)
        in >> v[i];
    v[0]=v[n];
    solve(1,n-1);
    solve(2,n);
    solve(0,n-2);
    out << maxim;
    out<<'\n';
    in.close();
    out.close();
    return 0;
}