Cod sursa(job #290926)

Utilizator ConsstantinTabacu Raul Consstantin Data 28 martie 2009 22:56:17
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#define Nmx 100010
#define max(a,b) ((a)>(b)?(a):(b))
int i,j,k,l,m,n,v[Nmx],d1[Nmx],d2[Nmx],d3[Nmx];

int main(){

freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);

scanf("%d",&n);

scanf("%d %d",&v[1],&v[2]);
if(n==2)
        {printf("%d",0);
        return 0;
        }
for(i=3;i<=n;i++)
        scanf("%d",&v[i]);

d1[2]=v[1]+v[2];
for(i=4;i<n;i++)
        {d1[i]=max(d1[i-1],d1[i-3]+v[i-1]+v[i]);
        m=max(m,d1[i]);
        }
d2[3]=v[2]+v[3];
m=max(d2[3],m);
for(i=5;i<=n;i++)
        {d2[i]=max(d2[i-1],d2[i-3]+v[i]+v[i-1]);
        m=max(m,d2[i]);
        }

d3[1]=v[n]+v[1];
m=max(d3[i],m);
for(i=3;i<n-1;i++)
        {d3[i]=max(d3[i],d3[i-3]+v[i]+v[i-1]);
        m=max(d3[i],m);
        }
        
printf("%d",m);
return 0;}