# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
602244 | 2022-07-22T18:52:12 Z | PiejanVDC | Packing Biscuits (IOI20_biscuits) | C++17 | 0 ms | 0 KB |
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; long long X; vector<long long>v; map<long long, long long>mp[61]; long long dp(int i, long long cnt) { if(i == 61) return 1; if(mp[i].count(cnt)) return mp[i][cnt]; long long ret = 0; if(cnt + v[i] >= X) ret = dp(i+1, (cnt + v[i] - X)/2); ret += dp(i+1, (cnt+v[i])/2); return mp[i][cnt] = ret; } long long count_tastiness(long long x, vector<long long>a) { X = x; v = a; for(int i = a.size() ; i < K ; i++) v.push_back(0); for(int i = 0 ; i < 61 ; i++) mp.clear(); return dp(0, 0); }