Cod sursa(job #2820640)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 20 decembrie 2021 22:59:18
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

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


long long n , dp1[100005], a[100005], dp2[100005], dp3[100005];


int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> a[i];
    dp1[1] = a[1];
    dp1[2] = a[1] + a[2];
    dp1[3] = dp1[2];
    for (int i = 4; i < n; i++)
        dp1[i] = max (dp1[i - 3] + a[i - 1] + a[i], dp1[i - 1]);
    dp2[1] = a[1] + a[n];
    dp2[2] = dp2[1];
    dp2[3] = dp2[2];
    for (int i = 4; i < n - 1; i++)
        dp2[i] = max (dp2[i - 3] + a[i - 1] + a[i], dp2[i - 1]);
    dp3[1] = 0;
    dp3[2] = a[2];
    dp3[3] = a[2] + a[3];
    for (int i = 4; i <= n; i++)
        dp3[i] = max (dp3[i - 3] + a[i - 1] + a[i], dp3[i - 1]);
    fout << max ({dp1[n - 1], dp2[n - 2], dp3[n]}) << "\n";
    return 0;
}