Pagini recente » Cod sursa (job #2278289) | Cod sursa (job #1416521) | Cod sursa (job #359785) | Cod sursa (job #238271) | Cod sursa (job #2404559)
#include <bits/stdc++.h>
using namespace std ;
const int NR = 100005 ;
ifstream in ("oo.in") ;
ofstream out ("oo.out") ;
int64_t n , dp0 [ NR ] , v [ NR ] , sol , dp ;
int main () {
int i ;
in >> n ;
for ( i = 1 ; i <= n ; ++ i )
in >> v [ i ] ;
for ( i = 2 ; i < n ; ++ i ) {
dp = v [ i ] + v [ i - 1 ] + dp0 [ i - 2 ] ;
dp0 [ i + 1 ] = max ( dp0 [ i ] , dp ) ;
}
sol = dp0 [ n ] ;
for ( i = 1 ; i <= n ; dp0 [ i ] = 0 , ++ i ) ;
dp0 [ 2 ] = v [ 1 ] + v [ n ] ;
for ( i = 4 ; i <= n - 2 ; ++ i ) {
dp = v [ i ] + v [ i - 1 ] + dp0 [ i - 2 ] ;
dp0 [ i + 1 ] = max ( dp0 [ i ] , dp ) ;
}
sol = max ( sol , dp0 [ n - 1 ] ) ;
for ( i = 1 ; i <= n ; dp0 [ i ] = 0 , ++ i ) ;
for ( i = 3 ; i <= n ; ++ i ) {
dp = v [ i ] + v [ i - 1 ] + dp0 [ i - 2 ] ;
dp0 [ i + 1 ] = max ( dp0 [ i ] , dp ) ;
}
sol = max ( sol , dp0 [ n + 1 ] ) ;
out << sol ;
}