#include "biscuits.h"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,avx2")
#include<iostream>
#include<vector>
#include<algorithm>
#include<utility>
#include<chrono>
#include<iomanip>
using namespace std;
typedef long long ll;
long long count_tastiness(ll k, std::vector<long long> vec) {
auto st = clock();
int sum = 0;
while(!vec.empty() && vec.back() == 0) vec.pop_back();
int n = (int)vec.size();
for(int i = 0; i < n; i++) sum += (vec[i] << i);
vector<int> ori(n), a;
for(int i = 0; i < n; i++) ori[i] = vec[i];
auto f = [&](int now){
a = ori;
for(int times = 0; times < k; times++){
int x = now;
for(int i = n - 1; i >= 0; i--){
if(x == 0) break;
int res = min(a[i], x >> i);
x -= (res << i);
a[i] -= res;
}
if(x != 0) return 0;
}
return 1;
};
int ans = 0;
for(int i = 0; i * k <= sum; i++){
ans += f(i);
//if(f(i) == 1) cout << i << endl;
}
//cout << fixed << setprecision(6) << float(clock() - st) / CLOCKS_PER_SEC << endl;
return ans;
}
// g++ -std=c++17 -Wall -Wextra -Wshadow -fsanitize=undefined -fsanitize=address -o run -g biscuits.cpp grader.cpp
# | 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... |