Cod sursa(job #1979148)

Utilizator DavidLDavid Lauran DavidL Data 9 mai 2017 19:44:08
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define MAX 100001
using namespace std;
ifstream fi("oo.in");
ofstream fo("oo.out");

int dp[MAX],x[MAX],n,i,rez,maxim,j;
bool primul[MAX];
int main()
{
    fi>>n;
    for (i=1; i<=n; i++)
        fi>>x[i];
    dp[1]=x[n-1]+x[n];
    dp[2]=x[n]+x[1];
    dp[0]=0;

    for (i=3; i<=n; i++)
    {
        maxim=0;
        for (j=i-7; j<=i-3; j++)
            if (j>=0)
            {
                if (dp[j]>dp[maxim]&&(primul[j]||i!=n))
                    maxim=j;
            }
        dp[i]=dp[maxim]+x[i-2]+x[i-1];
        primul[i]=primul[maxim];
    }
    ///determinam dp[n] intr-un mod special


    for (i=1; i<=n; i++)
        rez=max(rez,dp[i]);
    fo<<rez;
    fi.close();
    fo.close();
    return 0;
}