Cod sursa(job #2462885)

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