#include<bits/stdc++.h>
#include "biscuits.h"
using namespace std;
using ll = long long;
ll count_tastiness(ll x, vector<ll> a) {
ll ans = 1;
priority_queue<pair<ll, ll>> pq;
for(int i=a.size()-1;i>=0;i--){
ll u = 1ll << i;
if(a[i]){
ll p = 0;
queue<pair<ll, ll>> q;
while(!pq.empty() && pq.top().first > u){
auto [x, y] = pq.top(); pq.pop();
ll s = min(x / u, a[i] + 1);
p += (s - 1) * y;
ans += (s - 1) * y;
if(x > u * s) q.push({x - u * s, y});
else p += y;
}
while(!q.empty()) pq.push(q.front()), q.pop();
ans += a[i];
pq.push({u, a[i] + p});
}
}
// while(!pq.empty()) printf("%lld %lld\n",pq.top().first,pq.top().second), pq.pop();
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
256 KB |
Output is correct |
2 |
Incorrect |
1 ms |
256 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
256 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
1 ms |
256 KB |
Output is correct |
8 |
Correct |
1 ms |
256 KB |
Output is correct |
9 |
Incorrect |
1 ms |
256 KB |
Output isn't correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
256 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
256 KB |
Output is correct |
2 |
Incorrect |
1 ms |
256 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |