Cod sursa(job #3311129)

Utilizator petric_mariaPetric Maria petric_maria Data 19 septembrie 2025 18:10:45
Problema Oo Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");

int n, a[100005], dp[100005], ans = 0;

int main()
{
    f >> n;
    for (int i=1; i<=n; ++i)
        f >> a[i];

    // iau 1 si 2
    dp[0] = 0;
    dp[1] = a[1];  dp[2] = a[1] + a[2];  dp[3] = dp[2];
    for (int i=5; i<=n-1; ++i)
        dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
    ans = max (ans, dp[n-1]);
    //cout << "1  " << ans << endl;

    // iau n si n-1
    dp[1] = 0;  dp[2] = a[2];
    for (int i=3; i<=n-3; ++i)
        dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
    ans = max (ans, dp[n-3] + a[n-1] + a[n]);
    //cout << "2  " << ans << endl;

    // iau 1 si n
    dp[1] = a[1]; dp[2] = dp[1];
    for (int i=4; i<=n-2; ++i)
        dp[i] = max (dp[i-3] + a[i-1] + a[i], dp[i-1]);
    ans = max (ans, dp[n-2] + a[n]);
    //cout << "3  " << ans << endl;

    g << ans;
    return 0;
}