Cod sursa(job #543192)

Utilizator SpiderManSimoiu Robert SpiderMan Data 27 februarie 2011 18:03:19
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
# include <cstdio>

const char *FIN = "oo.in", *FOU = "oo.out" ;
const int MAX = 100005 ;

int V[MAX], dp[MAX] ;
int N ;

inline int max ( int A, int B ) {
    return ( A > B ? A : B ) ;
}

inline int poz ( int X ) {
    dp[1] = ( X == 1 ) ? V[1] + V[N] : 0 ;
    dp[2] = ( X == 3 ) ? 0 : max ( V[1] + V[2], dp[1] ) ;
    for ( int i = 3; i <= N + X - 3; ++i ) {
        dp[i] = max ( dp[i - 1], dp[i - 3] + V[i] + V[i - 1] ) ;
    }

    return dp[N + X - 3] ;
}

int main ( void ) {
    freopen ( FIN, "r", stdin ) ;

    scanf ( "%d", &N ) ;
    for ( int i = 1; i <= N; ++i ) {
        scanf ( "%d", V + i ) ;
    }

    fprintf ( fopen ( FOU, "w" ) , "%d", max ( poz ( 1 ), max ( poz ( 2 ) , poz ( 3 ) ) ) ) ;
}