Pagini recente » Cod sursa (job #1720886) | Cod sursa (job #2936875) | Cod sursa (job #2736063) | Cod sursa (job #158110)
Cod sursa(job #158110)
#include <stdio.h>
#include <mem.h>
#define in "oo.in"
#define out "oo.out"
#define dim 10001
inline int Maxim(int a, int b) {
if ( a > b ) return a;
return b;
}
int N, maxim=0;
int C[dim], A1[dim];
int main()
{ int i;
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d", &N);
for (i = 1; i <= N; i++ )
scanf("%d", &C[i]);
A1[2] = A1[3] = A1[4] = C[1] + C[2];
for (i = 5; i < N; i++ )
A1[i] = Maxim( A1[i-1], C[i]+C[i-1]+A1[i-3] );
maxim = Maxim( maxim, A1[N-1] );
memset(A1,0,sizeof(A1));
A1[3] = A1[4] = A1[5] = C[2] + C[3];
for (i = 6; i <= N; i++ )
A1[i] = Maxim ( A1[i-1], C[i]+C[i-1]+A1[i-3] );
maxim = Maxim( maxim, A1[N] );
memset(A1,0,sizeof(A1));
A1[1] = A1[2] = A1[3] = C[1] + C[N];
for (i = 4; i < N-1; i++ )
A1[i] = Maxim( A1[i-1], C[i]+C[i-1]+A1[i-3] );
maxim = Maxim( maxim, A1[N-2] );
printf("%d\n", maxim);
return 0;
}