제출 #838498

#제출 시각아이디문제언어결과실행 시간메모리
838498caganyanmaz비스킷 담기 (IOI20_biscuits)C++17
0 / 100
2 ms596 KiB
#include <bits/stdc++.h> #define pb push_back #define ll long long using namespace std; //#define DEBUGGING #ifdef DEBUGGING #include "../debug.h" #else #define debug(x...) void(42) #endif constexpr static int MXK = 65; ll count_tastiness(ll x, vector<ll> a) { assert(x == 1); int k = a.size(); while (a.size() < MXK-1) a.pb(0); debug(a); for (int i = 0; i < MXK; i++) { ll change = max<ll>((a[i] - x) / 2, 0); a[i+1] += change; a[i] -= change * 2; } vector<ll> pf(MXK); pf[0] = 0; for (int i = 1; i < MXK; i++) { pf[i] = pf[i-1]; if ((i-1)<k) pf[i] += a[i-1] << (i-1); } debug(pf); vector<ll> dp(MXK); // Last open bit dp[0] = 1; for (int i = 1; i < MXK; i++) for (int j = 0; j < i; j++) if (((pf[i] - pf[j])>>(i-1)) >= x) dp[i] += dp[j]; ll res = 0; for (int i = 0; i < MXK; i++) res += dp[i]; debug(dp, res); return res; }
#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...