Pagini recente » Cod sursa (job #2934959) | Cod sursa (job #2711111) | Cod sursa (job #2602017) | Cod sursa (job #2270162) | Cod sursa (job #1739781)
#include <cstdio>
#define NMax 100005
#define MAX(a,b)((a)>(b)?(a):(b))
int best[2][NMax];
int v[NMax];
int main(){
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
int i,N;
scanf("%d",&N);
for( i = 1; i <= N; ++i ) scanf("%d",&v[i]);
best[0][3] = v[1] + v[2];
for( i = 4; i <= N+1; ++i )
best[0][i] = MAX( best[0][i-2], MAX( best[0][i-1],MAX( best[0][i-3] + v[i-2] + v[i-1], best[0][i-4] + v[i-3] + v[i-2] ) ) );
best[1][2] = v[1] + v[N];
best[1][3] = best[1][4] = best[1][2];
best[1][5] = best[1][2] + v[3] + v[4];
for( i = 6; i < N; ++i )
best[1][i] = MAX( best[1][i-2], MAX( best[1][i-1], MAX( best[1][i-3] + v[i-2] + v[i-1], best[1][i-4] + v[i-3] + v[i-2] ) ) );
printf("%d\n", MAX( best[0][N+1], best[1][N-1] ) );
return 0;
}