Pagini recente » Cod sursa (job #2796821) | Cod sursa (job #57470) | Cod sursa (job #751691) | Cod sursa (job #2334096) | Cod sursa (job #132174)
Cod sursa(job #132174)
#include<cstdio>
int a[100001],b[100001],n,i,max,m;
int maxim(int a,int b){if(a<b) return b; return a;}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&a[i]);
if(n==2) max=a[1]+a[2];
else{
b[3]=a[2]+a[3];
m=0;
for(i=4;i<=n;i++){
m=maxim(m,b[i-3]);
b[i]=a[i]+a[i-1]+m;}
max=maxim(m,maxim(b[n-2],maxim(b[n-1],b[n])));
b[2]=a[1]+a[2];
m=0;
for(i=3;i<n;i++){
m=maxim(m,b[i-3]);
b[i]=a[i]+a[i-1]+m;}
max=maxim(max,maxim(m,maxim(b[n-3],maxim(b[n-2],b[n-1]))));
b[1]=a[n]+a[1];
b[2]=a[1]+a[2];
m=0;
for(i=3;i<n-1;i++){
m=maxim(m,b[i-3]);
b[i]=a[i]+a[i-1]+m;}
max=maxim(max,maxim(m,maxim(b[n-4],maxim(b[n-3],b[n-2]))));}
printf("%d\n",max);
fclose(stdout);
return 0;
}