#include "biscuits.h"
#include <vector>
#include <map>
typedef long long LL;
using namespace std;
typedef vector<LL> VL;
map<LL, LL> m;
LL f(const VL& s, LL x, LL n) { // S(i) = ∑a(k)*(2^k)
if (n <= 0) return 0;
if (n == 1) return 1;
if (m.count(n)) return m[n];
LL i = __lg(n - 1), p2 = 1LL << i; // 2^i<n≤2^(i+1)
return m[n] = f(s, x, p2) + f(s, x, min(n, 1 + s[i] / x) - p2);
}
LL count_tastiness(LL x, VL a) {
m.clear();
for (size_t i = 1; i < a.size(); i++) a[i] = a[i - 1] + (a[i] << i);
while (a.size() <= 60) a.push_back(a.back());
return f(a, x, a.back());
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
364 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
364 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
364 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
384 KB |
Output is correct |
2 |
Correct |
25 ms |
1260 KB |
Output is correct |
3 |
Correct |
24 ms |
1260 KB |
Output is correct |
4 |
Correct |
24 ms |
1388 KB |
Output is correct |
5 |
Correct |
24 ms |
1260 KB |
Output is correct |
6 |
Correct |
29 ms |
1132 KB |
Output is correct |
7 |
Correct |
29 ms |
1132 KB |
Output is correct |
8 |
Correct |
28 ms |
1260 KB |
Output is correct |
9 |
Correct |
27 ms |
1280 KB |
Output is correct |
10 |
Correct |
20 ms |
1164 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
364 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |