Cod sursa(job #1995349)

Utilizator Y0da1NUME JMECHER Y0da1 Data 27 iunie 2017 19:19:12
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>

using namespace std;

int sect[100005];
int n;
int D [100005];
int dinamica(int * a)//, int dim)
{
    memset(D, 0, 100005);
    D[1]=a[1];
    D[2]=a[2] + D[1];
    for(int i=3;i<n;++i)
        if(i<5)
            D[i]=D[i-1];
        else
            D[i]=max(D[i-1], D[i-3] + a[i-1] + a[i]);

    return  D[n-1];

}
int main ()
{

    ifstream in ("oo.in");
    ofstream out ("oo.out");
    int d;
    int maxim = -2e9;
    in>>n;
    for (int i=1;i<=n;++i)
        in>>sect[i];
    sect[n+1]=sect[1];
    sect[n+2]=sect[2];
    sect[n+3]=sect[3];
    for(int i=0;i<3;++i)
    {
        //cout<<"\nIncep la v+ "<<i<<"\n";
        d=dinamica(sect+i);//, n+i);
        if (maxim < d)
            maxim = d;
    }
    out<<maxim;
    return 0;
}