Cod sursa(job #2308816)

Utilizator bogdi1bogdan bancuta bogdi1 Data 27 decembrie 2018 20:03:45
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int d[100005];
int v[100005];
int main()
{   freopen("oo.in", "r",stdin);
    freopen("oo.out", "w",stdout);
    int n,i,ans=0;
    scanf("%d", &n);
    for(i=1; i<=n; i++)
        scanf("%d", &v[i]);
    v[n+1]=v[1];
    d[2]=v[1]+v[2];
    d[3]=d[4]=d[2];
    for(i=5; i<n; i++)
        d[i]=max(d[i-1], d[i-3]+v[i-1]+v[i]);
    d[n]=d[n-1];
    ans=d[n];
    memset(d, 0, sizeof(d));
    d[3]=v[2]+v[3];
    d[4]=d[5]=d[3];
    for(i=6; i<=n; i++)
        d[i]=max(d[i-1], d[i-3]+v[i-1]+v[i]);
    ans=max(ans, d[n]);
    memset(d, 0, sizeof(d));
    d[4]=v[3]+v[4];
    d[5]=d[6]=d[4];
    for(i=7; i<=n+1; i++)
        d[i]=max(d[i-1], d[i-3]+v[i-1]+v[i]);
    ans=max(ans, d[n+1]);
    printf("%d", ans);
    return 0;
}