# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1067119 | n1k | Packing Biscuits (IOI20_biscuits) | C++17 | 51 ms | 1116 KiB |
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;
const int K = 61;
ll X;
vector<ll> sum(K);
map<ll, ll> mem;
ll fast(ll t){
if(mem.count(t)) return mem[t];
if(t==1) return 1;
if(t<=0) return 0;
ll msb = 63 - __builtin_clzll(t);
if((1ll<<msb)==t) msb--;
return mem[t]=fast(1ll<<msb) + fast(min(t, sum[msb]/X+1)-(1ll<<msb));
}
long long count_tastiness(long long x, std::vector<long long> a) {
sum.assign(K+5, 0);
mem.clear();
X = x;
for(int i=0; i<K; i++){
if(i<a.size()) sum[i]+=(1ll<<i)*a[i];
sum[i+1]+=sum[i];
}
return fast(1ll<<K);
}
/*
1
4 1
0 0 0 0
*/
Compilation message (stderr)
# | 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... |