Cod sursa(job #2820644)

Utilizator robertanechita1Roberta Nechita robertanechita1 Data 20 decembrie 2021 23:06:43
Problema Oo Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;


ifstream fin("oo.in");
ofstream fout("oo.out");
/**

max(dp[i-1]
*/

int dp[100005], a[100005], n, dp2[100004], dp3[100004];

int main()
{
    fin >> n ;
    for(int i = 1; i <= n; i++)
        fin >> a[i];
    dp[1] = a[1];
    dp[2] = a[1] + a[2];
    dp[3] = dp[2];
    for(int i = 3; i < n; i++)
        dp[i] = max(dp[i-1], dp[i-3] + a[i - 1] + a[i]);
    dp2[1] = a[1] + a[n];
    dp2[2] = dp2[1];
    dp2[3] = dp2[2] ;
    for(int i = 4; i < n - 1; i++)
        dp2[i] = max(dp2[i-1], dp2[i-3] + a[i - 1] + a[i]);
    dp3[1] = 0;
    dp3[2] = a[2];
    dp3[3] = a[2] + a[3];
    for(int i = 4; i < n - 1; i++)
        dp3[i] = max(dp3[i-1], dp3[i-3] + a[i - 1] + a[i]);

    fout << max({dp[n-1], dp2[n - 2], dp3[n]});
    return 0;
}