This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector<ll>;
using i128 = __int128;
ll count_tastiness(ll x, vll a) {
int n = int(a.size());
int MN = 63;
vll C(MN, 0);
for(int i = 0; i < MN; ++i) {
if(i < n) C[i] = a[i] * (1ll << i);
if(i) C[i] += C[i - 1];
}
for(int i = 0; i < MN; ++i)
C[i] /= x;
vll F(MN, 0);
F[0] = 1;
function<ll(int, ll)> taie = [&](int k, ll lim) -> ll {
if(lim < 0) return 0ll;
if(lim >= (1ll << k) - 1) return F[k];
//k > 0 de aici
ll mij = (1ll << (k - 1)) - 1;
if(lim <= mij) return taie(k - 1, lim);
return taie(k - 1, lim - mij - 1) + F[k - 1];
};
for(int i = 1; i < MN; ++i) {
//cout << C[i - 1] << " ";
F[i] = F[i - 1] + taie(i - 1, C[i - 1] - (1ll << (i - 1)));
}
// cout << "\n";
// for(auto it : F)
// cout << it << " ";
// cout << "\n";
return F.back();
}
# | 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... |