Mai intai trebuie sa te autentifici.
Cod sursa(job #92620)
Utilizator | Data | 16 octombrie 2007 08:29:07 | |
---|---|---|---|
Problema | Oo | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.89 kb |
#include <stdio.h>
int main(){
int i, n, a[100001], smax[100001], 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;
}