#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
map<int, int> dp;
int s[63], n;
int f(int x) {
if (x <= 0) return 0;
if (x == 1) return 1;
if (dp.count(x)) return dp[x];
int k = floor(log2l(x-1));
dp[x] = f(1LL << k) + f(min(x, s[k] / n + 1) - (1LL << k));
// cout << x << " " << (1 << k) << " " << min(x, s[k] / x + 1) dp[x] << '\n';
return dp[x];
}
int count_tastiness(int x, vector<int> a) {
dp.clear();
n = x;
while (a.size() < 63) a.push_back(0);
for (int i = 0; i < 63; i++) s[i] = (!i ? 0 : s[i-1]) + a[i] * (1LL << i);
return f(s[62] + 1);
}
# | 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... |