Cod sursa(job #948773)

Utilizator j.loves_rockJessica Joanne Patrascu j.loves_rock Data 11 mai 2013 15:50:00
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>
#include <cstring>

using namespace std;
int n,i,a[100005],SOL[100005],dnm[100005],sol1,sol2,sol3;

int main()
{
    ifstream f("oo.in");
    ofstream g("oo.out");
    f>>n;
    for(i=1; i<=n; i++) f>>a[i];
    a[n+1]=a[1];
    for(i=1; i<=n; i++)
        SOL[i]=a[i]+a[i+1];
    dnm[1]=dnm[2]=dnm[3]=SOL[1];
    for(i=4; i<=n-2; i++)
        dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
    sol1=dnm[n-2];
    memset(dnm,0,sizeof(dnm));
    dnm[2]=dnm[3]=dnm[4]=SOL[2];
    for(i=5; i<=n-1; i++)
        dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
    sol2=dnm[n-1];
    memset(dnm,0,sizeof(dnm));
    dnm[3]=dnm[4]=dnm[5]=SOL[3];
    for(i=6; i<=n; i++)
        dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
    sol3=dnm[n];
    g<<max(sol1,max(sol2,sol3));
    return 0;
}