Cod sursa(job #368228)
#include<stdio.h>
#include<algorithm>
using namespace std;
int maxim,s[100100],n,v[100100],i;
int main(){
FILE*f=fopen("oo.in","r");
FILE*g=fopen("oo.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
s[2]=v[1]+v[2];
s[3]=s[4]=s[2];
for(i=1;i<=n-1;i++){
s[i]= max ( v[i]+v[i-1] + s[i-3], s[i-1] );
}
maxim=s[i-1];
s[1]=v[1]+v[n];
s[2]=s[3]=s[1];
for(i=4;i<=n-2;i++){
s[i]=max (v[i]+v[i-1] + s[i-3], s[i-1]);
}
if (s[i-1]>maxim)
maxim=s[i-1];
s[3]=v[2]+v[3];
s[4]=s[5]=s[3];
for(i=6;i<=n;i++)
s[i]=max (v[i]+v[i-1] + s[i-3], s[i-1]);
if(s[i-1]>maxim)
maxim=s[i-1];
fprintf(g,"%d",maxim);
fclose(f);fclose(g);
return 0;
}