Pagini recente » Cod sursa (job #433513) | Cod sursa (job #588431) | Cod sursa (job #2001198) | Cod sursa (job #1736008) | Cod sursa (job #1770152)
#include <cstdio>
#include <iostream>
using namespace std;
int v[100001],d1[100001],d2[100001],d3[100001];
int main()
{
FILE *fin=fopen ("oo.in","r");
FILE *fout=fopen ("oo.out","w");
int n,i,maxi,m1,m2,m3;
fscanf (fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf (fin,"%d",&v[i]);
m1=d1[1]=v[n]+v[1];
m2=d2[2]=v[1]+v[2];
m3=d3[3]=v[2]+v[3];
// exista 3 moduri de a incepe
for (i=3;i<=n;i++){
if (i<=n-2 && i>3){
d1[i]=max(m1,d1[i-3])+v[i]+v[i-1];
m1=max(m1,d1[i-3]);
}
if (i>4 && i<n){
d2[i]=max(m2,d2[i-3])+v[i]+v[i-1];
m2=max(m2,d2[i-3]);
}
if (i>5 && i<=n){
d3[i]=max(m3,d3[i-3])+v[i]+v[i-1];
m3=max(m3,d3[i-3]);
}
maxi=max(max(d1[i],d2[i]),d3[i]);
}
fprintf (fout,"%d ",maxi);
return 0;
}