Cod sursa(job #2286921)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 20 noiembrie 2018 23:49:38
Problema Oo Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
#define Dim 100005
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int V[Dim],N,ans;
int dp[5][Dim];

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

    for(int i=1;i<=3;i++)
    {
        int st;
        if(i-3<=0) st=N+i-3;
        else st=i-3;

        if(i==4)
        {
            st=N-1;
            dp[i][N]=V[N]+V[1];
        }

        for(int j=st;j>i+2;j--)
        {
            dp[i][j]=max(dp[i][j],dp[i][j+3]+V[j]+V[j+1]);
            dp[i][j]=max(dp[i][j],dp[i][j+4]+V[j]+V[j+1]);
            dp[i][j]=max(dp[i][j],dp[i][j+5]+V[j]+V[j+1]);
        }

        ans=max(ans,dp[i][i+3]+V[i]+V[i+1]);
        ans=max(ans,dp[i][i+4]+V[i]+V[i+1]);
        ans=max(ans,dp[i][i+5]+V[i]+V[i+1]);
    }
    g<<ans;
    return 0;
}