Pagini recente » Cod sursa (job #2198625) | Cod sursa (job #297773) | Cod sursa (job #1353199) | Cod sursa (job #1014418) | Cod sursa (job #2280240)
#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;
}