#include "biscuits.h"
#include<bits/stdc++.h>
#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;
long long count_tastiness(long long x, std::vector<long long> a) {
int n = a.size();
if(x == 1){
long long cur = 1;
long long ans = 1;
long long mult = 1;
f0r(i, n){
if(a[i] == 0){
if(cur != 1){
ans *= cur;
cur = 1;
mult = 1;
}
}
else{
cur += mult * a[i];
mult *= 2;
}
}
if(cur != 0){
ans *= cur;
cur = 1;
mult = 1;
}
return ans;
}
else{
long long sum = 0;
f0r(i, n){
sum += a[i] * (1LL << i);
}
long long ans = 1;
for(long long i = 1; i <= sum / x; i++){
vector<long long> tmp = a;
bool ok = 1;
f0r(j, x){
long long cur = i;
for(int k = n - 1; k>=0; k--){
if((1LL << k) <= cur){
int cnt = min(tmp[k], cur / (1LL << k));
cur -= cnt * (1LL << k);
tmp[k] -= cnt;
}
}
if(cur != 0){
ok = 0; break;
}
}
if(ok)ans++;
}
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... |