#include "biscuits.h"
#include <bits/stdc++.h>
#define ll long long
#define pii pair<ll,ll>
#define ff first
#define ss second
using namespace std;
ll count_tastiness(ll x, vector<ll> a) {
auto v = a;
while(v.size()<62)
v.push_back(0);
for (ll i = 0; i < 62; i++)
{
ll ol = v[i];
if (v[i]>x)
v[i] = x+(v[i]-x)%2,v[i+1]+=(ol-v[i])/2;
}
ll sum = 0;
vector<ll> dp(63,0);
dp[0] = 1;
vector<ll> rb(63,-1);
for(ll i = 1; i <= 62; i++)
{
sum+=v[i-1]*(1ll<<i-1);
ll rbv = -1;
if(__int128(x)*__int128((1ll<<i-1))<2e18)
{
rbv = (sum-x*(1ll<<i-1))/x;
if(sum<x*(1ll<<i-1))
rbv = -1;
}
rbv = min(rbv,(1ll<<i-1)-1);
rb[i] = rbv;
for(int bit = 61;bit >= 0;bit--)
if((rbv+1)&(1ll<<bit))
dp[i]+=dp[bit],rbv-=(1ll<<bit),rbv=min(rbv,rb[bit+1]);
dp[i]+=dp[i-1];
}
return dp[61];
}
| # | 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... |