Cod sursa(job #3291614)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 5 aprilie 2025 10:47:47
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
const int dim=100002;
using namespace std;

int a[dim],b[dim],rez;

int main()
{
    ifstream f("oo.in");
    ofstream g("oo.out");

    int i,j,k,N;
    f>>N;
    for(i=1; i<=N; ++i)
        f>>a[i];

//luam 1 si 2
    b[2]=b[3]=b[4]=a[1]+a[2];
    for(i=5; i<N; ++i)
    {
        b[i]=b[i-1];
        if(b[i]<b[i-3]+a[i-1]+a[i])
            b[i]=b[i-3]+a[i-1]+a[i];
    }
    rez=max(rez,b[N-1]);

//nu luam 1
    b[0]=b[1]=b[2]=0;
    for(i=3; i<=N; ++i)
    {
        b[i]=b[i-1];
        if(b[i]<b[i-3]+a[i-1]+a[i])
            b[i]=b[i-3]+a[i-1]+a[i];
    }
    rez=max(rez,b[N]);

//luam N si 1
    b[1]=b[2]=b[3]=a[N]+a[1];
    for(i=4; i<N-1; ++i)
    {
        b[i]=b[i-1];
        if(b[i]<b[i-3]+a[i-1]+a[i])
            b[i]=b[i-3]+a[i-1]+a[i];
    }
    rez=max(rez,b[N-2]);

    g<<rez<<'\n';
    return 0;
}