Cod sursa(job #315229)

Utilizator pedobearBacauanu Vlad pedobear Data 14 mai 2009 20:25:01
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>

int v[100010],din[100010];
int i,n,s;

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);
    
    scanf ("%d",&n);
    for (i=1;i<=n;i++) scanf ("%d",&v[i]);
    
    din[1]=v[1]+v[n], din[2]=max(din[0]+v[1]+v[2],din[1]);
    for (i=3;i<=n-2;i++) din[i]=max(din[i-3]+v[i]+v[i-1],din[i-1]);
    s=max(s,din[n-2]);
    
    din[1]=0, din[2]=v[1]+v[2];
    for (i=3;i<=n-1;i++) din[i]=max(din[i-3]+v[i]+v[i-1],din[i-1]);
    s=max(s,din[n-1]);
    
    din[1]=din[2]=0;
    for (i=3;i<=n-1;i++) din[i]=max(din[i-3]+v[i]+v[i-1],din[i-1]);
    s=max(s,din[n]);
    
    printf ("%d\n",s);
    
    return 0;
}