Pagini recente » Cod sursa (job #3286080) | Cod sursa (job #1596296) | Cod sursa (job #2499378) | Cod sursa (job #2976816) | Cod sursa (job #168961)
Cod sursa(job #168961)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "oo.in"
#define out "oo.out"
#define dim 100001
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()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d", &N);
for ( int i = 1; i <= N; i++ )
scanf("%d", &C[i]);
A1[2] = A1[3] = A1[4] = C[1] + C[2];
for ( int 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 ( int 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 ( int 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", maxim);
}