#include <bits/stdc++.h>
using namespace std;
long long p[65];
map <pair<int,long long>, long long> m;
long long s[65];
long long g(int i, long long n, long long x) {
if (i < 0) return 1;
if (n <= 0) return 0;
if (m.count({i,n})) return m[{i,n}];
int res = g(i-1, min(n,p[i]), x);
int lim = min(n,s[i]/x+1);
if (lim > p[i]) res += g(i-1, lim-p[i], x);
return m[{i,n}] = res;
}
long long count_tastiness(long long x, std::vector<long long> a) {
int k = a.size();
long long res = 1;
long long cur = 0;
m.clear();
for (int i = 0; i < k; i++) {
cur += a[i] * res;
s[i] = cur;
p[i] = res;
res *= 2;
}
return g(k-1,2e18,x);
}
| # | 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... |