Submission #805789

#TimeUsernameProblemLanguageResultExecution timeMemory
805789MilosMilutinovicPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1 ms340 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;

long long count_tastiness(long long x, vector<long long> a) {
  int n = (int) a.size();
  vector<long long> pref(n);
  pref[0] = a[0];
  for (int i = 1; i < n; i++) {
    pref[i] += pref[i - 1] + a[i] * (1LL << i);
  }
  vector<long long> dp(n);
  function<void(int)> Solve = [&](int b) {
    if (b == 0) {
      dp[b] = pref[b];
      return;
    }
    Solve(b - 1);
    if (a[b] == 0) {
      dp[b] = dp[b - 1];
      return;
    }
    dp[b] = (dp[b - 1] + 1) * (a[b] + 1 - min(a[b], pref[b - 1] / (1LL << b)));
  };
  Solve(n - 1);
  return dp[n - 1];
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...