Submission #418090

#TimeUsernameProblemLanguageResultExecution timeMemory
418090InternetPerson10Packing Biscuits (IOI20_biscuits)C++17
0 / 100
4 ms332 KiB
#include "biscuits.h" #include <bits/stdc++.h> typedef long long ll; using namespace std; vector<ll> v; ll rec(int i, ll x) { // the last x are blocked, find total number of blocked // cout << "test\n"; // cout << i << ' ' << x << '\n'; if(x == 0) { if(i == (int)v.size()) return 0; return v[i]; } if(i == 0) return x; if(x < ((ll)1 << (i-1))) { return v[i-1] + rec(i-1, x); } return ((ll)1 << (i)) + rec(i-1, x - ((ll)1 << (i))); } long long count_tastiness(long long x, std::vector<long long> a) { vector<ll>().swap(v); ll tot = 0; for(int i = 0; i < 61; i++) { if(i == (int)a.size()) a.push_back(0); tot += ((ll)1 << i)*a[i]; if(tot >= x*((ll)1 << (i+1)) - 1) v.push_back(rec(i, 0)); else v.push_back(rec(i, ((ll)1 << (i+1)) - tot/x - 1)); } return ((ll)1 << 61) - v[60]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...