Cod sursa(job #2937345)

Utilizator LucaMuresanMuresan Luca Valentin LucaMuresan Data 10 noiembrie 2022 10:53:31
Problema Oo Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;

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

const int dim = 1e5+10;
int n;
int a[dim];
int dp[dim];

int solve (int pos)
{
    dp[pos] = 0;
    dp[pos+1] = a[pos] + a[pos+1];

    for (int i=pos+2; i<n; i++)
        dp[i] = max(dp[i-1], dp[i-3] + a[i-1] + a[i]);
    return dp[n-2+pos];
}

int main()
{
    in >> n;

    for (int i=1; i<=n; i++)
        in >> a[i];
    a[n+1] = a[1];

    out << max(max(solve(1), solve(2)), solve(3)); /// trb sa inceapa de la 1, 2, 3

    return 0;
}