Cod sursa(job #2937422)

Utilizator LucaMuresanMuresan Luca Valentin LucaMuresan Data 10 noiembrie 2022 12:17:01
Problema Oo Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

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

#define int long long

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];
}

signed main()
{
    in >> n;

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

    int ans = -1;

    for (int i=1; i<4; i++) /// prima alerge la pozitia i
    {
        ans = max(ans, solve(i));
    }

    out << ans;

    return 0;
}