Cod sursa(job #3213918)

Utilizator alecx1802alexandru alecx1802 Data 13 martie 2024 16:51:02
Problema Oo Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
#define ror( i, a, b) for( int i = a; i<b; i++)
using namespace std;
ifstream fin("oo.in"); ofstream fout("oo.out");

int v[100001], dp[100001], sol, n;

int main()
{
    fin >> n;
    ror( i, 1, n+1)
        fin >> v[i];
        
    dp[1] = 0;
    dp[2] = v[2] + v[1];
    dp[3] = dp[4] = dp[2];
    ror( i, 1, n)
        dp[i] = max( dp[i - 1], v[i] + v[i - 1] + dp[i - 1]);
    sol = dp[n - 1];

    dp[1] = dp[2] = 0;
    dp[3] = v[3] + v[2];
    dp[4] = dp[5] = dp[3];
    ror( i, 6, n+1)
        dp[i] = max( dp[i - 1], v[i] + v[i - 1] + dp[i - 1]);
    sol = max( sol, dp[n]);
    
    dp[1] = v[1] + v[n];
    dp[2] = dp[3] = dp[1];
    ror( i, 4, n-2)
        dp[i] = max( dp[i - 1], v[i] + v[i - 1] + dp[i - 1]);
    sol = max( sol, dp[n - 2]);

    fout << sol;
}