#include "biscuits.h"
#include <bits/stdc++.h>
using i64 = long long;
long long count_tastiness(long long x, std::vector<long long> a) {
std::vector<i64> pre = a;
for (int i = 0; i + 1 < pre.size(); i++) {
pre[i + 1] += pre[i] / 2;
}
while (pre.back() > 1) {
pre.push_back(pre.back() / 2);
}
int k = pre.size();
while (a.size() < k) {
a.push_back(0);
}
std::vector<i64> dp(k + 1);
dp[0] = 1;
for (int i = 0; i < k; i++) {
dp[i + 1] = dp[i];
if (pre[i] < x) {
continue;
}
i64 req = 2 * std::max(0LL, x - a[i]);
for (int j = i - 1; j >= 0; j--) {
if (pre[j] >= req + x) {
dp[i + 1] += dp[j];
req = 2 * std::max(0LL, req + x - a[j]);
} else {
req = 2 * std::max(0LL, req - a[j]);
}
}
// if (req == 0) {
dp[i + 1]++;
// }
}
return dp[k];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |