Pagini recente » Cod sursa (job #1542973) | Cod sursa (job #243113) | Cod sursa (job #949474) | Cod sursa (job #3121595) | Cod sursa (job #32835)
Cod sursa(job #32835)
#include <stdio.h>
#include <string.h>
#define max(i,j) (i > j ? i : j)
#define nmax 100005
int n,a[nmax],A[nmax],r;
int main() {
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for(int i = 1; i <= n; i++) scanf("%d",&a[i]);
memset(A,0,sizeof(A));
A[2] = a[1] + a[2];
for(int i = 3; i < n; i++) {
A[i] = max(a[i] + a[i - 1] + A[i - 3],A[i - 1]);
r = max(r,A[i]);
}
memset(A,0,sizeof(A));
A[3] = a[2] + a[3];
for(int i = 4; i <= n; i++) {
A[i] = max(a[i] + a[i - 1] + A[i - 3],A[i - 1]);
r = max(r,A[i]);
}
memset(A,0,sizeof(A));
A[1] = a[1] + a[n];
for(int i = 3; i < n - 1; i++) {
A[i] = max(a[i] + a[i - 1] + A[i - 3],A[i - 1]);
r = max(r,A[i]);
}
printf("%d\n",r);
return 0;
}