Pagini recente » Cod sursa (job #2802034) | Cod sursa (job #2417599) | Cod sursa (job #2148922) | Cod sursa (job #1798495) | Cod sursa (job #1722100)
#include <cstdio>
#define MAXN 100000
int d[MAXN+1], v[MAXN+1];
inline int max2(int a, int b){
if(a>b) return a;
else return b;
}
inline int dinamica(int st, int dr){
if(st>=dr) return 0;
d[st]=d[st-1]=0;
d[st+1]=v[st]+v[st+1];
for(int i=st+2; i<=dr; i++) d[i]=max2(d[i-1], v[i]+v[i-1]+d[i-3]);
return d[dr];
}
int main(){
int n, i, ans;
FILE *fin, *fout;
fin=fopen("oo.in", "r");
fout=fopen("oo.out", "w");
fscanf(fin, "%d", &n);
for(i=1; i<=n; i++){
fscanf(fin, "%d", &v[i]);
}
ans=max2(dinamica(2, n), max2(dinamica(1, n-1), v[n]+v[1]+dinamica(3, n-1)));
fprintf(fout, "%d\n", ans);
fclose(fin);
fclose(fout);
return 0;
}