Pagini recente » Cod sursa (job #2875206) | Cod sursa (job #264516) | Cod sursa (job #2857595) | Cod sursa (job #2970033) | Cod sursa (job #32766)
Cod sursa(job #32766)
#include <stdio.h>
#define maxn 100010
char a[maxn];
int n,sol;
int c[maxn];
int max(int a,int b)
{
if (a>b) return a;
return b;
}
int count(int x,int y)
{
int c0,c1,c2,c3,i;
c1=a[x+1]+a[x];
c0=0;
c2=a[x+1]+a[x+2];
c3=a[x+2]+a[x+3];
for (i=x;i<y;i++)
{
if ((i+3<y) && (c0+a[i+2]+a[i+3]>c3)) c3=c0+a[i+2]+a[i+3];
if (c0>c1) c1=c0;
c0=c1;
c1=c2;
c2=c3;
c3=0;
}
return c0;
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
int i;
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&a[i]);
a[0]=a[n];
sol=max(max(count(1,n),count(2,n+1)),count(0,n-1));
printf("%d\n",sol);
return 0;
}