Cod sursa(job #1541050)

Utilizator SmitOanea Smit Andrei Smit Data 3 decembrie 2015 18:12:58
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>

using namespace std;

int n,a[100003];
int d1[100003];
int d2[100003];
int d3[100003];

inline void Citire()
{
    int i;
    ifstream fin("oo.in");
    fin>>n;
    for(i=1;i<=n;++i)
        fin>>a[i];
    fin.close();
}

inline void Solutie()
{
    int i,sol;
    //1
    d1[2]=a[1]+a[2];
    //2
    d2[1]=a[1] + a[n];
    d2[4]=a[4] + a[3]+d2[1];
    //3
    d3[3]=a[3] + a[2] + d3[n];
    d3[4]=a[4] + a[3] + d3[n];
    d3[n]=a[n] + a[n-1];
    for(i=5;i<n;i++)
        d1[i]=a[i]+a[i-1] + max(d1[i-3],max(d1[i-4],d1[i-5]));
    for(i=5;i<n-1;i++)
        d2[i]=a[i]+a[i-1] + max(d2[i-3],max(d2[i-4],d2[i-5]));
    for(i=5;i<n-2;i++)
        d3[i]=a[i] + a[i-1] + max(d3[i-3],max(d3[i-4],d3[i-5]));
    i=n;
    sol=0;
    while(i>=n-5 && i>=0)
        {sol=max(sol,max(d1[i],max(d2[i],d3[i]))); i--;}
    ofstream fout("oo.out");
    fout<<sol<<"\n";
    fout.close();
}

int main()
{
    Citire();
    Solutie();
    return 0;
}