Submission #337326

#TimeUsernameProblemLanguageResultExecution timeMemory
337326mayflyyhPacking Biscuits (IOI20_biscuits)C++14
100 / 100
425 ms1412 KiB
#include <stdio.h> #include <vector> #include "biscuits.h" using namespace std; #define ll long long ll dp[70]; ll count_tastiness(ll x, vector<ll> sz) { int k = sz.size(); for (int i = 0; i < 62 - k; i++) sz.push_back(0); k = 62; for (int i = k; i >= 0; i--) { if (i == k) { dp[i] = 1; continue; } dp[i] = 0; for (int j = i + 1; j <= k; j++) { ll zx = 0, zd = (1ll << (j - i)) - 1, h = 0; for (int a = j - 1; a >= i; a--) { h = h * 2 + sz[a]; ll z = (h / x + 1) << (a - i); if (a > i) { if (z > zx) zx = z; } else { if (z - 1 < zd) zd = z - 1; } } if (zx <= zd) dp[i] += dp[j] * (zd - zx + 1); } } return dp[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...