Pagini recente » Cod sursa (job #1409771) | Cod sursa (job #2715487) | Cod sursa (job #422527) | Cod sursa (job #582567) | Cod sursa (job #158113)
Cod sursa(job #158113)
#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));
for(i=1;i<=N;i++) A1[i]=0;
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] );
//setmem(A1,0,sizeof(A1));
for(i=1;i<=N;i++) A1[i]=0;
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;
}