Pagini recente » Cod sursa (job #494439) | Cod sursa (job #477720) | Cod sursa (job #1136239) | Cod sursa (job #907191) | Cod sursa (job #92618)
Cod sursa(job #92618)
#include <stdio.h>
int main(){
int i, n, a[100000], smax[100000], mm;
a[0]=0;
FILE *f = fopen("oo.in", "r");
fscanf(f, "%d", &n);
for(i=1; i<=n; ++i) fscanf(f, "%d", &a[i]);
fclose(f);
//case 1
smax[0]=smax[1]=0; smax[2]=a[1]+a[2];
for(i=3; i<n; ++i){
smax[i]=smax[i-1];
if(a[i]+a[i-1]+smax[i-3] > smax[i])
smax[i] = a[i] + a[i-1] + smax[i-3];
}
mm=smax[n-1];
//case 2
smax[0]=smax[1]=smax[2]=0; smax[3]=a[2]+a[3];
for(i=4; i<=n; ++i){
smax[i]=smax[i-1];
if(a[i]+a[i-1]+smax[i-3] > smax[i])
smax[i] = a[i] + a[i-1] + smax[i-3];
}
if(mm<smax[n]) mm=smax[n];
//case 3
smax[n]=smax[0]; smax[1]=a[1]+a[n];
for(i=2; i<n; ++i){
smax[i]=smax[i-1];
if(a[i]+a[i-1]+smax[i-3] > smax[i])
smax[i] = a[i] + a[i-1] + smax[i-3];
}
if(mm<smax[n]) mm=smax[n];
FILE *g=fopen("oo.out", "w");
fprintf(g, "%d\n", mm);
fclose(g);
return 0;
}