Pagini recente » Cod sursa (job #1311479) | Cod sursa (job #1397304) | Cod sursa (job #64787) | Cod sursa (job #187404) | Cod sursa (job #2422305)
#include <iostream>
#include<cstdio>
#include<string.h>
using namespace std;
const int N=100005;
int d[N];
int v[N];
int ans,n;
void solve(int st,int dr){
for(int i=st;i<=dr;i++){
d[i]=max(d[i-1],d[i-3]+v[i]+v[i-1]);
ans=max(ans,d[i]);
}
}
int main()
{
FILE*fin,*fout;
fin=fopen("oo.in","r");
fout=fopen("oo.out","w");
int n;
fscanf(fin,"%d",&n);
for(int i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
d[2]=v[1]+v[2];
ans=max(ans,d[2]);
solve(4,n-1);
memset(d,0,sizeof(d));
d[1]=v[1]+v[n];
ans=max(ans,d[1]);
solve(3,n-2);
memset(d,0,sizeof(d));
d[0]=v[n]+v[n-1];
ans=max(d[0],ans);
solve(2,n-3);
memset(d,0,sizeof(d));
solve(3,n-1);
fprintf(fout,"%d",ans);
return 0;
}