Cod sursa(job #2656392)

Utilizator GligarEsterabadeyan Hadi Gligar Data 7 octombrie 2020 17:05:30
Problema Oo Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>

using namespace std;

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

const int nmax=100000;

int v[nmax+1],d[nmax+1];

int main(){
    int n;
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i];
    }
    d[1]=0;
    d[2]=0;
    d[3]=0;
    d[4]=v[2]+v[3];
    for(int i=5;i<=n;i++){
        d[i]=max(d[i-1],d[i-3]+v[i-2]+v[i-1]);
    }
    int sol=0;
    for(int i=1;i<=n;i++){
        if(sol<d[i]){
            sol=d[i];
        }
    }
    d[1]=0;
    d[2]=0;
    d[3]=v[1]+v[2];
    for(int i=4;i<=n;i++){
        d[i]=max(d[i-1],d[i-3]+v[i-2]+v[i-1]);
    }
    for(int i=1;i<=n;i++){
        if(sol<d[i]){
            sol=d[i];
        }
    }
    d[1]=0;
    d[2]=v[n]+v[1];
    for(int i=3;i<=n;i++){
        d[i]=max(d[i-1],d[i-3]+v[i-2]+v[i-1]);
    }
    for(int i=1;i<=n;i++){
        if(sol<d[i]){
            sol=d[i];
        }
    }
    fout<<sol;
    return 0;
}