Cod sursa(job #1580310)

Utilizator refugiatBoni Daniel Stefan refugiat Data 25 ianuarie 2016 19:22:19
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream si("oo.in");
ofstream so("oo.out");
int v[100005],pd[100005];
int main()
{
    int n;
    si>>n;
    int i;
    for(i=1;i<=n;++i)
    {
        si>>v[i];
    }
    v[0]=v[n];
    v[n+1]=v[1];
    pd[1]=v[1]+v[2];
    pd[2]=max(pd[1],v[2]+v[3]);
    for(i=3;i<n-1;++i)
    {
        pd[i]=max(pd[i-1],pd[i-3]+v[i]+v[i+1]);
    }
    int sol=pd[n-2];
    for(i=0;i<=n;++i)
        pd[i]=0;

    pd[2]=v[2]+v[3];
    for(i=3;i<n;++i)
    {
        pd[i]=max(pd[i-1],pd[i-3]+v[i]+v[i+1]);
    }
    sol=max(pd[n-1],sol);
    for(i=0;i<=n;++i)
        pd[i]=0;

    for(i=3;i<=n;++i)
    {
        pd[i]=max(pd[i-1],pd[i-3]+v[i]+v[i+1]);
    }
    sol=max(pd[n],sol);
    so<<sol<<'\n';
    return 0;
}