Cod sursa(job #1293306)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 15 decembrie 2014 19:02:52
Problema Oo Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int NMAX = 100000;

int best[NMAX + 5],n,v[NMAX + 5],sol = -1;

void init()
{

    for(int i = 1 ; i <= n+1 ; i++)
        best[i] = 0;
}

void solve(int i,int m)
{

    for(int k = i ; k <= m ; k++){
        best[k] = max(best[k-1],best[k-3] + v[k] + v[k-1]);
        if(sol < best[k])
            sol = best[k];
    }
    init();
}

int main()
{

    in>>n;
    for(int i = 1 ; i <= n ; i++)
        in>>v[i];
    in.close();
    v[n+1] = v[1];
    best[2] = v[1] + v[2];
    solve(3,n-1);
    best[3] = v[3] + v[4];
    solve(4,n);
    best[4] = v[4] + v[5];
    solve(5,n+1);
    out<<sol;
    return 0;
}