Pagini recente » Cod sursa (job #2390046) | Cod sursa (job #2798959) | Cod sursa (job #881631) | Cod sursa (job #1087895) | Cod sursa (job #1722104)
#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;
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]);
fprintf(fout, "%d\n", max2(dinamica(2, n), max2(dinamica(1, n-1), v[n]+v[1]+dinamica(3, n-2))));
fclose(fin);
fclose(fout);
return 0;
}