Pagini recente » Cod sursa (job #638181) | Cod sursa (job #461212) | Cod sursa (job #2618077) | Cod sursa (job #1448680) | Cod sursa (job #2280227)
#include <iostream>
#include <fstream>
#define NMAX 100001
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
int n,maxim;
int p[NMAX+1],profit[NMAX];
int main()
{
in>>n;
for (int i=1;i<n;++i)
in>>p[i];
p[n+1]=p[1];
for (int i=1;i<=n;++i)
profit[i]=0;
for (int i=1;i<n;++i)
{
if(i<3)
profit[i]=max(profit[i-1],p[i]+p[i-1]);
else
profit[i]=max(profit[i-1],p[i]+p[i-1]+profit[i-3]);
}
for (int i=1;i<=n;++i)
cout<<profit[i]<<" ";
cout<<'\n';
maxim=max(profit[n-2],maxim);
for (int i=1;i<=n;++i)
profit[i]=0;
for (int i=2;i<=n;++i)
{
if(i<3)
profit[i]=max(profit[i-1],p[i]+p[i-1]);
else
profit[i]=max(profit[i-1],p[i]+p[i-1]+profit[i-3]);
}
for (int i=1;i<=n;++i)
cout<<profit[i]<<" ";
cout<<'\n';
maxim=max(profit[n-1],maxim);
for (int i=1;i<=n;++i)
profit[i]=0;
for (int i=3;i<=n+1;++i)
profit[i]=max(profit[i-1],p[i]+p[i-1]+profit[i-3]);
for (int i=1;i<=n;++i)
cout<<profit[i]<<" ";
cout<<'\n';
maxim=max(profit[n],maxim);
out<<maxim;
return 0;
}