Cod sursa(job #2096309)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 28 decembrie 2017 22:27:46
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream in ("oo.in");
ofstream out ("oo.out");
int d[100001],v[100001],n,maxim;
void functie (int a, int b) {
    d[a+1] = v[a] + v[a+1];
    d[a] = 0; d[a-1] = 0;
    for (int i = a+2; i <= b; i ++) {
        if (d[i-3]+v[i]+v[i-1] > d[i-1]) {
            d[i] = d[i-3] + v[i] + v[i-1];
        }
        else {
            d[i] = d[i-1];
        }
    }
}
int main (void) {
    in >> n;
    for (int i = 1; i <= n; i ++) {
        in >> v[i];
    }

    functie (1,n-1);
    maxim = max (maxim, d[n-1]);

    functie (2,n);
    maxim = max (maxim, d[n]);

    functie (3,n-2);
    maxim = max (maxim, d[n-2] + v[1] + v[n]);

    out << maxim;
    return 0;
}