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());
vector<i128> S(n, 0);
for(int i = 0; i < n; ++i) {
S[i] = i128(1ll << i) * a[i];
if(i) S[i] += S[i - 1];
S[i] = min(S[i], x * i128(1ll << (i + 1)) - 1);
}
vll C(n, 0);
for(int i = 0; i < n; ++i) {
S[i] /= x;
if(S[i] >= i128(1ll << (i + 1)) - 1) C[i] = (1ll << (i + 1)) - 1;
else C[i] = ll(S[i]);
}
int re = 0;
const ll MV = 100003;
for(int i = 0; i < min(MV, 1ll << n); ++i) {
ll v = 0;
int ok = 1;
for(int j = 0; j < n; ++j) {
if(i & (1ll << j)) v |= (1ll << j);
if(v > S[j]) {
ok = 0;
break;
}
}
re += ok;
}
return re;
}
# | 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... |