Pagini recente » Cod sursa (job #2132232) | Cod sursa (job #1984051) | Cod sursa (job #2895543) | Cod sursa (job #2125965) | Cod sursa (job #2280237)
#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;
}