Cod sursa(job #2280237)

Utilizator RedXtreme45Catalin RedXtreme45 Data 10 noiembrie 2018 12:54:49
Problema Oo Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>

using namespace std;
int v[100005],profit[100005];
int main()
{
    ifstream fin("oo.in");
    ofstream fout("oo.out");
    int n,i,j,max1=0;
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    v[n+1]=v[1];
    v[n+2]=v[2];
    profit[1]=0;
    profit[2]=v[1]+v[2];
    for (i=3;i<=n;i++)
    {
        if (i-3>0)
        profit[i]=max(profit[i-1],v[i-1]+v[i]+profit[i-3]);
        else
        profit[i]=max(profit[i-1],v[i-1]+v[i]);
    }
    max1=profit[n-1];
    profit[2]=0;
    profit[3]=v[2]+v[3];
    for (i=4;i<=n+1;i++)
    {
        if (i-3>1)
        profit[i]=max(profit[i-1],v[i-1]+v[i]+profit[i-3]);
        else
        profit[i]=max(profit[i-1],v[i-1]+v[i]);
    }
    if (profit[n]>max1)
        max1=profit[n];
        profit[3]=0;
     profit[4]=v[3]+v[4];
    for (i=5;i<=n+2;i++)
    {
        if (i-3>2)
        profit[i]=max(profit[i-1],v[i-1]+v[i]+profit[i-3]);
        else
        profit[i]=max(profit[i-1],v[i-1]+v[i]);
    }
    if (profit[n+1]>max1)
        max1=profit[n];
    fout<<max1;
    return 0;
}