Cod sursa(job #2404559)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 13 aprilie 2019 01:00:14
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#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 ;
}