Submission #303525

#TimeUsernameProblemLanguageResultExecution timeMemory
303525tutisPacking Biscuits (IOI20_biscuits)C++17
42 / 100
1093 ms20064 KiB
#include "biscuits.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; typedef long long ll; using namespace __gnu_pbds; ll count_tastiness(ll x, vector<ll> a) { while (a.size() < 60) a.push_back(0); ll s[61]; s[60] = 0; for (int i = 59; i >= 0; i--) { s[i] = a[i] + s[i + 1]; if (s[i] >= x) s[i] = x; } cc_hash_table<ll, ll>M[61]; function<ll(ll, int)>get = [&](ll d, int i)->ll { if (s[i] + d < x) return 1; if (i == 60) return d / x + 1; if (M[i].find(d) != M[i].end()) return M[i][d]; if (a[i] + d < x) { return M[i][d] = get((d + a[i]) / 2, i + 1); } else { return M[i][d] = get((d + a[i]) / 2, i + 1) + get((d + a[i] - x) / 2, i + 1); } }; return get(0, 0); }
#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...