Cod sursa(job #832511)

Utilizator ericptsStavarache Petru Eric ericpts Data 10 decembrie 2012 20:09:21
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
using namespace std;
#define maxn 100005
int v[maxn];
int best[maxn];
inline int max(int a,int b)
{
    if(a>=b)
        return a;
    return b;
}
int main()
{
    freopen("oo.in","r",stdin);
    freopen("oo.out","w",stdout);
    int N,i;
    scanf("%d",&N);
    for(i=1;i<=N;++i)
        scanf("%d",v+i);
    v[N+1]=v[1];
    int show = 0;
    best[1] = 0;
    best[2] = v[2]+v[1];
    for(i=3;i<N;++i)
        best[i] = max(best[i-1],v[i]+v[i-1]+ best[i-3]);
    show = max(best[N-1],show);
    best[1] = 0;
    best[2] = 0;
    best[3] = v[3]+v[2];
    for(i=4;i<=N;++i)
        best[i] = max(best[i-1],v[i]+v[i-1]+ best[i-3]);
    show = max(show,best[N]);
    best[1] = 0;
    best[2] = 0;
    best[3] = 0;
    best[4] = v[4] + v[3];
    for(i=5;i<=N+1;++i)
        best[i] = max(best[i-1],v[i]+v[i-1]+ best[i-3]);
    show = max(show,best[N]);
    printf("%d\n",show);
    return 0;
}