Cod sursa(job #2371388)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 6 martie 2019 17:25:03
Problema Oo Scor 0
Compilator cpp-64 Status done
Runda pregatire_cls10_oji Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;
const int NMAX = 100005;

int N, sol;
int v[NMAX], dp[NMAX];

int main(){

    freopen("oo.in", "r", stdin);
    freopen("oo.out", "w", stdout);

    scanf("%d", &N);
    for(int i = 1; i <= N; i++)
        scanf("%d", &v[i]);

    dp[1] = v[1]; dp[2] = v[1] + v[2];
    for(int i = 3; i < N; i++)
        dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
    sol = dp[N-1];

    dp[1] = 0; dp[2] = v[2];
    for(int i = 3; i <= N; i++)
        dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
    sol = max(dp[N], sol);

    dp[2] = dp[1] = v[n] + v[1];
    for(int i = 3; i <= N - 2; i++)
        dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
    sol = max(dp[N-2], sol);

    printf("%d\n", sol);

    return 0;
}