Cod sursa(job #2672251)

Utilizator cristiemanuelstroe cristian emanuel cristiemanuel Data 13 noiembrie 2020 16:00:19
Problema Oo Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include  <iostream>
#include  <fstream>
#include  <cstring>

using namespace std;

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

const int Nmax = 1e5 + 5,
          inf = 0x3f3f3f3f;
int dp[Nmax] = {0},//suma maxima pana la pozitia i
   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 j;
    if(i == 1)
      dp[1] = v[1], j = 3;
    else if(i == 2)
      dp[1] = 0, dp[2] = v[2] + v[3], j = 3;
    else
      dp[3] = v[n] + v[1], j = 3;
    for(; j <= n; j++)
      dp[j] = max(dp[j-1], v[j] + v[j-1] + dp[j-3]);
  //  for(int i = 1; i <= n; i++)
    //  cout<<dp[i]<<' ';
  //  cout<<endl;
    if(ma < dp[n])
        ma = dp[n];
    memset(dp, 0, sizeof dp);
  }
  out<<ma;
}