Pagini recente » Cod sursa (job #787830) | Cod sursa (job #1993443) | Cod sursa (job #2209723) | Cod sursa (job #280690) | Cod sursa (job #332408)
Cod sursa(job #332408)
#include <stdio.h>
#define N 100100
int n,i,maxc,sol,v[N],c[N],b[N],Max1(),Max2(),Max3(),Max4(),Max5();
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
c[1]=v[n]+v[1];maxc=c[1];
for(i=2;i<=n;i++)
{
c[i]=v[i]+v[i-1];
maxc=maxc>c[i]?maxc:c[i];
}
}
void solve()
{
if(n==6)
{
maxc=c[1]+c[4]>c[2]+c[5]?c[1]+c[4]:c[2]+c[5];
maxc=maxc>c[3]+c[6]?maxc:c[3]+c[6];
}
if(n<=6){printf("%d\n",maxc);return;}
sol=Max1();
maxc=Max2();sol=sol>maxc?sol:maxc;
maxc=Max3();sol=sol>maxc?sol:maxc;
maxc=Max4();sol=sol>maxc?sol:maxc;
maxc=Max5();sol=sol>maxc?sol:maxc;
printf("%d\n",sol);
}
int Max1()
{
int ret=0;//culeg 1
b[1]=c[1];b[2]=0;b[3]=0;b[4]=c[1]+c[4];b[5]=c[1]+c[5];
ret=b[4]>b[5]?b[4]:b[5];
for(i=6;i<=n-2;i++)
{
b[i]=b[i-3]>b[i-4]?b[i-3]:b[i-4];
b[i]=b[i]>b[i-5]?b[i]:b[i-5];
b[i]+=c[i];
ret=ret>b[i]?ret:b[i];
}
return ret;
}
int Max2()
{
int ret=0;//culeg 2
b[1]=0;b[2]=c[2];b[3]=0;b[4]=0;b[5]=c[2]+c[5];ret=b[5];
for(i=6;i<=n-1;i++)
{
b[i]=b[i-3]>b[i-4]?b[i-3]:b[i-4];
b[i]=b[i]>b[i-5]?b[i]:b[i-5];
b[i]+=c[i];
ret=ret>b[i]?ret:b[i];
}
return ret;
}
int Max3()
{
int ret=0;//culeg 3
b[1]=0;b[2]=0;b[3]=c[3];b[4]=0;b[5]=0;ret=b[3];
for(i=6;i<=n;i++)
{
b[i]=b[i-3]>b[i-4]?b[i-3]:b[i-4];
b[i]=b[i]>b[i-5]?b[i]:b[i-5];
b[i]+=c[i];
ret=ret>b[i]?ret:b[i];
}
return ret;
}
int Max4()
{
int ret=0;//culeg 4
b[1]=0;b[2]=0;b[3]=0;b[4]=c[4];b[5]=0;b[6]=0;ret=b[4];
for(i=7;i<=n;i++)
{
b[i]=b[i-3]>b[i-4]?b[i-3]:b[i-4];
b[i]=b[i]>b[i-5]?b[i]:b[i-5];
b[i]+=c[i];
ret=ret>b[i]?ret:b[i];
}
return ret;
}
int Max5()
{
int ret=0;//culeg 4
b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=c[5];b[6]=0;b[7]=0;ret=b[5];
for(i=8;i<=n;i++)
{
b[i]=b[i-3]>b[i-4]?b[i-3]:b[i-4];
b[i]=b[i]>b[i-5]?b[i]:b[i-5];
b[i]+=c[i];
ret=ret>b[i]?ret:b[i];
}
return ret;
}