Cod sursa(job #3199284)

Utilizator gBneFlavius Andronic gBne Data 1 februarie 2024 11:35:42
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

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

int d[100003], A[100003], A2[100004], A3[100005];
int ans = -1;

int main()
{
    int n;
    fin >> n;
    for(int i=1; i<=n; i++){
        fin >> A[i];
        A2[i + 1] = A3[i + 2] = A[i];
    }
    A2[1] = A[n];
    A2[2] = A[1];
    A3[1] = A[n - 1];
    A3[2] = A[n];
    d[2] = A[1] + A[2];
    for(int i=3; i<n; i++){
        d[i] = max(d[i-1], d[i-3] + A[i-1] + A[i]);
    }
    d[n] = d[n - 1];
    ans = max(ans, d[n]);
    d[2] = A2[1] + A2[2];
    for(int i=3; i<n; i++){
        d[i] = max(d[i-1], d[i-3] + A2[i-1] + A2[i]);
    }
    d[n] = d[n - 1];
    ans = max(ans, d[n]);
    d[2] = A3[1] + A3[2];
    for(int i=3; i<n; i++){
        d[i] = max(d[i-1], d[i-3] + A3[i-1] + A3[i]);
    }
    d[n] = d[n - 1];
    ans = max(ans, d[n]);
    fout << ans << '\n';
    return 0;
}