Cod sursa(job #1739781)

Utilizator silkMarin Dragos silk Data 10 august 2016 10:56:44
Problema Oo Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#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;
}