#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
long long count_tastiness(long long x, vector<long long> a) {
int k = a.size();
vector<long long> ep(k);
long long sum = 0;
for (long long i = 0; i < k; i++) {
sum += a[i]*(1LL<<i);
ep[i] = min((1LL<<(i+1))-1, sum/x);
}
map<pair<long long, int>, long long> m;
function<long long(long long, int)> ric = [&](long long point, int lev) {
if (lev == 1) {
return point+1;
}
if (m.count({point, lev})) return m[{point, lev}];
long long agg = 0;
long long mprev = (1LL<<(lev-1))-1;
if (point >= mprev) agg += ric(mprev, lev-1);
long long nex = min(point, ep[lev-1]); // check
agg += ric(nex&mprev, lev-1);
m.insert({{point, lev}, agg});
return agg;
};
return ric((1<<k)-1, 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... |