#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
long long p[64],h[64];
long long dp[64];
long long f[64];
long long count_tastiness(long long x, std::vector<long long> a)
{
p[0]=1;
for(long long i=1;i<a.size();i++)
p[i]=p[i-1]*2;
dp[a.size()-1]=a[a.size()-1];
f[a.size()-1]=1;
for(int i=a.size()-2;i>=0;i--)
{
dp[i]=min(a[i], 1LL*2)*f[i+1];
if(a[i]==0)f[i]=1;
for(int j=1;j<=a.size();j++)
{
long long rt=min(a[i]-1,p[j]-1);
long long lf=p[j-1];
if(j==1)lf--;
if(lf>a[i])break;
if(i+j==a.size())
{
dp[i]+=(a[i]-p[j-1]);
f[i]=1;
break;
}
dp[i]+=(dp[i+j])*(rt-lf+1);
if(p[j]-1>=a[i])
{
f[i]=dp[i+j]+f[i+j];
break;
}
}
//cout<<i<<" "<<dp[i]<<" "<<f[i]<<endl;
}
//cout<<sum/x<<endl;
return dp[0]+f[0];
}
# | 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... |