Pagini recente » Cod sursa (job #584180) | Cod sursa (job #2627374) | Cod sursa (job #1866497) | Cod sursa (job #143756) | Cod sursa (job #349803)
Cod sursa(job #349803)
#include<stdio.h>
int maxim,N,a[100001],v[100001],l[100001];
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(int i=1;i<=N;++i)
{
scanf("%d",&v[i]);
l[i]=v[i]+v[i-1];
}
l[1]=v[1]+v[N];
a[1]=l[1];
a[2]=max(a[1],l[2]);
for(int i=3;i<=N-2;++i)
{
a[i]=max(a[i-2],a[i-3]+l[i]);
}
a[2]=l[2];
a[1]=0;
a[3]=max(a[2],l[3]);
if(a[N]>maxim)
maxim=a[N];
for(int i=4;i<=N-1;++i)
{
a[i]=max(a[i-2],a[i-3]+l[i]);
}
if(a[N]>maxim)
maxim=a[N];
a[2]=0;
a[3]=l[3];
a[4]=max(a[3],l[4]);
for(int i=5;i<=N;++i)
{
a[i]=max(a[i-2],a[i-3]+l[i]);
}
if(a[N]>maxim)
maxim=a[N];
printf("%d",maxim);
}