#include "biscuits.h"
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define mp make_pair
#define vi vector<int>
#define f0r(i,n) for(int i = 0; i<n; i++)
#define FOR(i, k, n) for(int i = k; i<n; i++)
#define dout(x) cout<<x<<' '<<#x<<'\n';
#define vout(x) for(auto u : x)cout<<u<<' '; cout<<'\n';
#define vb vector<bool>
using namespace std;
map<pair<int,int>,int>ans; vi p;
int f(int x, int y){
// cout<<x<<' '<<y<<'\n';
if(ans.count(mp(x,y)))return ans[mp(x,y)];
if(x==0)return 1;
if(y==1)return 2;
int r1 = x - (1LL << (y-1)); int res = 0; if(r1 >= 0){
r1 = min(r1, p[y-1]); res += f(r1, y-1);
}
int r2 = x; r2 = min(r2, p[y-1]); res += f(r2, y-1);
ans[mp(x,y)] = res; return res;
}
long long count_tastiness(long long x, std::vector<long long> a) {
int n = a.size();
p.resize(n+1); p[1] = a[0]; FOR(i,2,n+1)p[i] = p[i-1] + (1LL << (i-1)) * a[i-1];
f0r(i,n+1)p[i]/=x;
return f(p[n], n);
return 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... |