Cod sursa(job #1086218)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 17 ianuarie 2014 21:14:37
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<cstdio>
int n,m,v[100100],i,j,sol,d[100100];
FILE *f,*g;
int maxim(int a,int b){
    if(a>b)
        return a;
    return b;
}
int main(){
    f=fopen("oo.in","r");
    g=fopen("oo.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
    }
    //cazul 1:incep cu elementele de pe pozitiile 1 si 2
    d[0]=0;
    d[1]=0;
    d[2]=v[1]+v[2];
    for(i=3;i<n;i++){
        d[i]=maxim(d[i-1],d[i-3]+v[i]+v[i-1]);
    }
    sol=d[n-1];
    //cazul 2:incep cu elementele de pe pozitiile 2 si 3
    d[1]=0;
    d[2]=0;
    d[3]=v[2]+v[3];
    for(i=4;i<=n;i++){
        d[i]=maxim(d[i-1],d[i-3]+v[i]+v[i-1]);
    }
    sol=maxim(sol,d[n]);
    //cazul 3:incep cu elementele de pe pozitiile 3 si 4
    d[2]=0;
    d[3]=0;
    d[4]=v[3]+v[4];
    for(i=5;i<=n-2;i++){
        d[i]=maxim(d[i-1],d[i-3]+v[i]+v[i-1]);
    }
    sol=maxim(sol,d[n-2]+v[n]+v[1]);
    fprintf(g,"%d",sol);
    fclose(f);
    fclose(g);
    return 0;
}