Submission #569785

#TimeUsernameProblemLanguageResultExecution timeMemory
569785StickfishPacking Biscuits (IOI20_biscuits)C++17
0 / 100
1082 ms49084 KiB
#include "biscuits.h" #include <iostream> #include <map> #include <algorithm> using namespace std; using ll = long long; const ll INF = 1e18 + 177013; const ll BORDER = 3e12 + 134; const int MAXK = 60; ll a[MAXK]; map<ll, ll> mp[MAXK]; ll get_ans(ll mxsm, int i) { if (mxsm < 0) return 0; mxsm = min(mxsm, a[i]); if (i == 0) return 1 + int(mxsm > 0); if (mp[i].find(mxsm) != mp[i].end()) return mp[i][mxsm]; cout << mxsm << ' ' << i << endl; ll t = get_ans(mxsm, i - 1) + get_ans(mxsm - (1ll << i), i - 1); mp[i][mxsm] = t; return t; } ll count_tastiness(ll x, vector<ll> a_) { int k = a_.size(); for (int i = 0; i < k; ++i) a[i] = a_[i]; for (int i = 1; i < 60; ++i) { a[i] <<= i; a[i] += a[i - 1]; } for (int i = 0; i < k; ++i) { a[i] /= x; } return get_ans(a[59], 59); }
#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...