Pagini recente » Cod sursa (job #532723) | Cod sursa (job #2467270) | Cod sursa (job #318493) | Cod sursa (job #520313) | Cod sursa (job #35553)
Cod sursa(job #35553)
#include <stdlib.h>
#include <stdio.h>
#define Nmax 100000
long N,b0[Nmax],b1[Nmax],i,max;
int x[Nmax];
int main()
{
freopen("oo.in","r",stdin);
scanf("%d\n",&N);
for (i=0;i<N;++i)
scanf("%d",&x[i]);
fclose(stdin);
freopen("oo.out","w",stdout);
if (N==2)
{
printf("%d",x[0]+x[1]);
fclose(stdout);
exit(0);
}
b0[1]=x[0]+x[1];
b0[2]=0;
b1[1]=0;
b1[2]=x[1]+x[2];
b0[3]=0;
b0[4]=b0[1]+x[3]+x[4];
b1[3]=x[2]+x[3];
b1[4]=x[3]+x[4];
for (i=5;i<N;++i)
{
b0[i]=b0[i-3];
if (b0[i-4]>b0[i]) b0[i]=b0[i-4];
if (b0[i-5]>b0[i]) b0[i]=b0[i-4];
b0[i]+=x[i-1]+x[i];
b1[i]=b1[i-3];
if (b1[i-4]>b1[i]) b1[i]=b1[i-4];
if (b1[i-5]>b1[i]) b1[i]=b1[i-4];
b1[i]+=x[i-1]+x[i];
}
b0[N]=0;
for (i=0;i<N;++i)
{
if (b0[i]>max) max=b0[i];
if (b1[i]>max) max=b1[i];
}
printf("%ld",max);
fclose(stdout);
return 0;
}