Cod sursa(job #2280240)

Utilizator RedXtreme45Catalin RedXtreme45 Data 10 noiembrie 2018 12:56:10
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 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[0]=0;
    profit[1]=v[1]+v[n];
    for (i=2; 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]);
    }
    max1=profit[n-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]);
    }
    if (profit[n-1]>max1)
        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];
    fout<<max1;
    return 0;
}