Cod sursa(job #2469860)

Utilizator LuscanAlexLuscan Alexandru LuscanAlex Data 8 octombrie 2019 09:28:11
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

const int lg = 100005;
int ma[lg][3], g[lg], n;

int main()
{
    fin >> n;

    for (int i = 1; i <= n; ++i)
        fin >> g[i];

    g[n + 1] = g[1];
    ma[2][0] = g[1] + g[2];
    ma[3][1] = g[2] + g[3];
    ma[4][2] = g[3] + g[4];

    for (int i = 3; i < n; ++i)
        ma[i][0] = max(ma[i - 1][0], ma[i - 3][0] + g[i] + g[i - 1]);

    for (int i = 4; i <= n; ++i)
        ma[i][1] = max(ma[i - 1][1], ma[i - 3][1] + g[i] + g[i - 1]);

    for (int i = 5; i <= n + 1; ++i)
        ma[i][2] = max(ma[i - 1][2], ma[i - 3][2] + g[i] + g[i - 1]);

    fout << max(ma[n - 1][0], max(ma[n][1], ma[n + 1][2]));
}