Cod sursa(job #2467042)

Utilizator Vlad.Vlad Cristian Vlad. Data 3 octombrie 2019 16:44:13
Problema Oo Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int oua[100010], n, d[100010];
void citire() {
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> oua[i];
    }
}
void init() {
    for (int i = 1; i <= n + 1; ++i) {
        d[i] = 0;
    }
}
int dinamica(int st, int fi) {
    d[st + 1] = oua[st + 1] + oua[st];
    for (int i = st + 2; i <= fi; ++i) {
        d[i] = max(oua[i] + oua[i - 1] + d[i - 3], d[i - 1]);
    }
    return d[fi];
}
int main()
{
    oua[n + 1] = oua[1];
    oua[n + 2] = oua[2];
    citire();
    int d1 = dinamica(1, n - 1);
    init();
    int d2 = dinamica(3, n + 1);
    init();
    int d3 = dinamica(2, n);
    fout << max(d1, max(d2, d3)) << "\n";
    return 0;
}