Submission #1075262

#TimeUsernameProblemLanguageResultExecution timeMemory
1075262allin27xPacking Biscuits (IOI20_biscuits)C++17
100 / 100
23 ms1112 KiB
#include <bits/stdc++.h> using namespace std; #include "biscuits.h" #define int long long vector<int> S; int X; unordered_map<int,int> memo; int dp(int n){ if (n<=0) return 0; if (memo.count(n)) return memo[n]; int l2=0; int t=1; while (2*t < n) l2++, t*=2; return memo[n] = dp(t) + dp(min(1+ S[l2]/X, n) - t); } long long count_tastiness(long long x, std::vector<long long> a) { memo.clear(); a.resize(max((int)a.size(), 61ll), 0); int k = a.size(); vector<int> s(k,0); s[0] = a[0]; X=x; for (int i = 1; i < k; i++) { s[i] = s[i - 1] + a[i] * (1ll<<i); } S=s; memo[1] = 1; return dp((int)1e18+2); }
#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...