Cod sursa(job #1335973)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 6 februarie 2015 10:50:22
Problema Oo Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#define DIM 100010
#define sum v[i] + v[i-1]
using namespace std;

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

int n, m, i, j, sol;
int v[DIM], d[DIM];

void SetUp(){
    fin >> n;
    for(i = 1; i <= n; i ++)
        fin >> v[i];
    return;
}

int best(int a, int b){
    if(a > b)
        return a;
    else
        return b;
}

void Dinamyc(){
    //Daca adun 1-2;
    d[2] = v[1] + v[2];
    for(i = 3; i < n; i ++)
        d[i] = best(d[i-1], d[i-3] + sum);
    sol = best(sol, d[n-1]);
    //Daca adun 1-n;
    d[1] = d[2] = 0;
    d[2] = v[1] + v[n];
    for(i = 3; i < (n-1); i ++)
        d[i] = best(d[i-1], d[i-3] + sum);
    sol = best(sol, d[n-2]);
    //Daca adun (n-1)-n;
    d[1] = d[2] = v[n-1] + v[n];
    for(i = 3; i < (n-2); i ++)
        d[i] = best(d[i-1], d[i-3] + sum);
    sol = best(sol, d[n-3]);
    fout << sol;
    return;
}

int main(){
    SetUp();
    Dinamyc();
    return 0;
}