Cod sursa(job #1855719)

Utilizator GinguIonutGinguIonut GinguIonut Data 23 ianuarie 2017 21:15:00
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <string.h>

#define nMax 100001

using namespace std;

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

int n, v[nMax], dp[nMax], Max;

int main()
{
    fin>>n;
    for(int i=1; i<=n; i++)
        fin>>v[i];
    dp[2]=v[1]+v[2];
    Max=max(Max, dp[2]);
    for(int i=3; i<n; i++)
    {
        dp[i]=v[i]+v[i-1]+dp[i-3];
        dp[i]=max(dp[i-1], dp[i]);
        Max=max(Max, dp[i]);
    }

    memset(dp, 0, sizeof(dp));
    for(int i=3; i<=n; i++)
    {
        dp[i]=v[i]+v[i-1]+dp[i-3];
        dp[i]=max(dp[i-1], dp[i]);
        Max=max(Max, dp[i]);
    }

    memset(dp, 0, sizeof(dp));
    dp[1]=dp[2]=dp[3]=v[1]+v[n];
    Max=max(Max, dp[1]);
    for(int i=4; i<n-1; i++)
    {
        dp[i]=v[i]+v[i-1]+dp[i-3];
        dp[i]=max(dp[i-1], dp[i]);
        Max=max(Max, dp[i]);
    }
    fout<<Max;
}