Cod sursa(job #2672224)

Utilizator cristiemanuelstroe cristian emanuel cristiemanuel Data 13 noiembrie 2020 15:05:30
Problema Oo Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include  <iostream>
#include  <fstream>

using namespace std;

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

const int Nmax = 1e5 + 5,
          inf = 0x3f3f3f3f;
int v[Nmax],
    n;

int main()
{
  in>>n;
  for(int i = 1; i <= n; i++)
    in>>v[i];
  int ma = inf;
  for(int i = 1; i <= 3; i++)
  {
    int dp[Nmax] = {0};//suma maxima pana la pozitia i
    if(i == 1)
      dp[1] = v[1];
    else if(i == 2)
      dp[1] = v[2] + v[3];
    else
      dp[1] = v[n] + v[1];
    for(int j = 3; j <= n; j++)
      dp[j] = max(dp[j-1], v[j] + v[j-1] + dp[j-3]);
    if(ma > dp[n])
        ma = dp[n];
  }
  out<<ma;
}