Cod sursa(job #1343919)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 16 februarie 2015 01:13:44
Problema Oo Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#define DIM 100010
using namespace std;

ifstream fin ("oo.in" );
ofstream fout("oo.out");

int n, m, i, j, k, ok, minim;
int d[4][DIM], maxim, x, y;

void SetUp(){
     fin >> n;
     for(i = 1; i <= n; i ++)
          fin >> d[0][i];
     return;
}

int best(int a, int b){
     if(a >= b) return a;
     if(a <= b) return b;
}

void Dinamyc(){
     d[0][n+1] = d[0][1];
     d[1][1] = d[0][1] + d[0][2];
     for(i = 3; i < n; i ++){
          x = d[1][i-1];
          y = d[1][i-3] + d[0][i-1] + d[0][i];
          d[1][i] = best(x, y);
     }
     maxim = best(maxim, d[1][n-1]);
     for(i = 3; i <= n; i ++){
          x = d[2][i-1];
          y = d[2][i-3] + d[0][i-1] + d[0][i];
          d[2][i] = best(x, y);
     }
     maxim = best(maxim, d[2][n-0]);
     for(i = 4; i<=n+1; i ++){
          x = d[3][i-1];
          y = d[3][i-3] + d[0][i-1] + d[0][i];
          d[3][i] = best(x, y);
     }
     maxim = best(maxim, d[3][n+1]);
     fout << maxim;
     return;
}

int main(){
     SetUp();
     Dinamyc();
     return 0;
}