Pagini recente » Cod sursa (job #2621874) | Cod sursa (job #508397) | Ciorna | Cod sursa (job #2635076) | Cod sursa (job #879137)
Cod sursa(job #879137)
#include <fstream>
#define nmax 100001
#define max(a, b) ((a > b) ? a : b)
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int a[nmax],d1[nmax],d2[nmax],d3[nmax],sol;
int main()
{
int n,i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
d1[2]=d1[3]=d1[4]=a[1]+a[2];
d2[3]=d2[4]=d2[5]=a[2]+a[3];
d3[1]=d3[2]=d3[3]=a[1]+a[n];
for(i=1;i<=n;i++)
{
if(i>4 && i!=n) d1[i]=max(d1[i-1],a[i]+a[i-1]+d1[i-3]);
if(i>5) d2[i]=max(d2[i-1],a[i]+a[i-1]+d2[i-3]);
if(i>3 && i<n-1) d3[i]=max(d3[i-1],a[i]+a[i-1]+d3[i-3]);
if(d1[i]>sol) sol=d1[i];
if(d2[i]>sol) sol=d2[i];
if(d3[i]>sol) sol=d3[i];
}
g<<sol;
}