Cod sursa(job #2986557)

Utilizator LucaT2Tasadan Luca LucaT2 Data 28 februarie 2023 19:25:09
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,v[100010],dp[100010],a[100010];

int main()
{
    fin>>n;
    int mx=0;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    for(int i=1;i<n;i++)
        v[i]=a[i]+a[i+1];
    v[n]=a[1]+a[n];

    for(int i=1;i<=9;i++)
        v[n+i]=v[i];
    for(int i=6;i<=n+6;i++)
    dp[i]=0;
    for(int i=6;i<=n+6;i++)
    {
        dp[i]=v[i]+max(dp[i-3],max(dp[i-4],dp[i-5]));
    }
    mx=max(mx,dp[n+6]-v[n+6]);
    for(int i=6;i<=n+6;i++)
    dp[i]=0;

    for(int i=7;i<=n+7;i++)
    {
        dp[i]=v[i]+max(dp[i-3],max(dp[i-4],dp[i-5]));
    }
    mx=max(mx,dp[n+7]-v[n+7]);
    for(int i=7;i<=n+7;i++)
    dp[i]=0;

    for(int i=8;i<=n+8;i++)
    {
        dp[i]=v[i]+max(dp[i-3],max(dp[i-4],dp[i-5]));
    }
    mx=max(mx,dp[n+8]-v[n+8]);

    fout<<mx;
    return 0;
}