Pagini recente » Cod sursa (job #2980636) | Cod sursa (job #2578736) | Cod sursa (job #1056759) | Cod sursa (job #1470739) | Cod sursa (job #132197)
Cod sursa(job #132197)
#include<stdio.h>
#define nmax 100002
#define max(a,b) ((a)>(b)?(a):(b))
long d1[nmax],d2[nmax];
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
int n;
scanf("%d",&n);
int aux1,aux2=0;
long solfin;
int i;
for(i=1; i<=n; ++i){
scanf("%d",&aux1);
d1[i]=aux1+aux2;
aux2=aux1;
}
d1[1]+=aux1;
d2[1]=d1[1];
for(i=4; i<n; ++i)
{
if( d2[i-2]+d1[i] > d2[i-1])
d2[i]=d2[i-2]+d1[i];
else
d2[i]=d2[i-1];
}
solfin=d2[n-1];
/*
for(i=1; i<=n; ++i)
printf("%d ",d2[i]);*/
d2[1]=0;
d2[2]=d2[3]=d2[4]=d1[2];
for(i=5; i<n; ++i)
{
if( d2[i-3]+d1[i] > d2[i-2])
d2[i]=d2[i-3]+d1[i];
else
d2[i]=d2[i-2];
}
solfin=max(solfin,d2[n-1]);
d2[1]=0;
d2[2]=0;
d2[3]=d1[3];
n-=2;
for(i=4; i<=n; ++i)
{
if( d2[i-2]+d1[i] > d2[i-1])
d2[i]=d2[i-2]+d1[i];
else
d2[i]=d2[i-1];
}
solfin=max(solfin,d2[n-1]);
printf("%d",solfin);
return 0;
}