이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "biscuits.h"
typedef long long ll;
ll min(ll a, ll b) {
return a < b ? a : b;
}
ll count_tastiness(ll x, std::vector<ll> a) {
a.resize(61);
ll dp[61]{1};
for (ll i = 1; i <= 60; ++i) {
ll req = 0, mx = 1ll<<i;
for (ll j = i-1; j >= 0; j--) {
ll used = min(a[j],req/(1ll<<j)), rem = a[j]-used;
req -= used * (1ll<<j);
if (!req) {
ll mxcnt = mx/(1ll<<j), blocks = rem/x, cnt = min(mxcnt-1, blocks), extra = rem-x*blocks;
dp[i] += dp[j] * (cnt+1);
mx -= cnt*(1ll<<j);
if (blocks < mxcnt-1 && (ll)1e18/x >= (1ll<<j)) {
mx -= 1ll<<j;
req = (x-extra)*(1ll<<j);
} else break;
}
}
}
return dp[60];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |