Cod sursa(job #1086336)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 17 ianuarie 2014 23:44:25
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
#define DIM 100010
FILE *f=fopen("oo.in","r"), *g=fopen("oo.out","w");

long int n, v[DIM], d[DIM], max;

long int maximul(long int X, long int Y){if(X>Y){return X;}return Y;}

void citire(){
long int i;

    fscanf(f,"%ld\n",&n);
    for(i=1;i<=n;i++){fscanf(f,"%ld",&v[i]);}

}

void rezolvare(){
long int i;

    max=0;
    d[2]=v[1]+v[2];
    for(i=3;i<=n-1;i++){
        d[i]= maximul( d[i-1], d[i-3]+v[i-1]+v[i] );
    }   max=  maximul( max, d[n-1] );

    d[2]=0; d[3]=v[2]+v[3];
    for(i=4;i<=n;i++){
        d[i]= maximul( d[i-1], d[i-3]+v[i-1]+v[i] );
    }   max=  maximul( max, d[n] );

    d[2]=0; d[3]=0; v[n+1]=v[1]; d[4]=v[3]+v[4];  max=maximul(max,d[4]);
    for(i=5;i<=n+1;i++){
        d[i]= maximul( d[i-1], d[i-3]+v[i-1]+v[i] );
    }   max=  maximul( max, d[n+1] );

}

void afisare(){fprintf(g,"%ld\n",max);}

int main(){

    citire();
    rezolvare();
    afisare();

return 0;
}