Cod sursa(job #1908901)

Utilizator alexilasiAlex Ilasi alexilasi Data 7 martie 2017 10:53:36
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream fin("oo.in");
ofstream fout("oo.out");

int i,n,v[100001],h,d[100001];

int maxi(int a,int b)
{
    if(a>b)return a;
    else return b;
}

int din(int a,int b)
{
    d[a]=0;
    d[a+1]=v[a+1]+v[a];
    d[a+2]=max(d[a+1],v[a+1]+v[a+2]);
    for(int i=a+3;i<=b;i++)
        d[i]=max(d[i-1],d[i-3]+v[i]+v[i-1]);
    return d[b];
}

int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    if(n==3)
        fout<<max(max(v[1]+v[2],v[1]+v[3]),v[2]+v[3]);
    else
    {
        fout<<maxi(maxi(din(2,n),din(1,n-1)),din(3,n+1));
    }
    return 0;
}