Cod sursa(job #2974080)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 3 februarie 2023 09:05:51
Problema Oo Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<iostream>
#include<fstream>
using namespace std;

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

int n,v[100005],dp[100005];

void citire()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
}

void solve()
{
    int max1 = 0;
    dp[1] = v[1]+v[n];
    dp[2] = dp[1];
    dp[3] = dp[2];
    for(int i=4;i<n;i++)
    {   
        dp[i] = max(dp[i-3] + v[i] + v[i-1],dp[i-1]);
    }
    max1 = max(dp[n-1],max1);
    
    dp[1] = 0;
    dp[2] = v[1]+v[2];
    dp[3] = dp[2];
    dp[4] = dp[3];
    for(int i=5;i<n;i++)
    {
        dp[i] = max(dp[i-3] + v[i] + v[i-1],dp[i-1]);
    }
    max1 = max(dp[n-1],max1);
    
    dp[1] = 0;
    dp[2] = 0;
    dp[3] = v[3] + v[2];
    dp[4] = dp[3];
    dp[5] = dp[3];
    for(int i=6;i<n;i++)
    {
        dp[i] = max(dp[i-3] + v[i] + v[i-1],dp[i-1]);
    }
    g<<max(dp[n-1],max1);
}

int main()
{
    citire();
    solve();
}