#include <bits/stdc++.h>
#include "biscuits.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int mX = 1e5+5;
map<ll, ll> memo;
ll x;
vector<ll> a;
vector<ll> s;
ll f(ll n) {
if (n<=0) return 0;
if (n==1) return 1;
if (memo.count(n)) return memo[n];
ll i = __lg(n-1);
ll caso1 = f((1ll)<<(i));
ll caso2 = f(min(n, 1+(s[i]/x))-((1ll)<<i));
return memo[n] = caso1+caso2;
}
const ll INF = 1e18+5;
ll count_tastiness(ll X, vector<ll> A) {
x = X, a = A;
int k = a.size();
s.assign(k, 0);
s[0] = a[0];
for (int i=1; i<k; i++) {
s[i] = s[i-1] + a[i]*((1ll)<<i);
}
while (s.size()<61) s.push_back(s.back());
ll ans = f(INF);
memo.clear();
return ans;
}
| # | 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... |