Submission #934045

# Submission time Handle Problem Language Result Execution time Memory
934045 2024-02-26T17:54:49 Z EJIC_B_KEDAX Packing Biscuits (IOI20_biscuits) C++17
0 / 100
2 ms 348 KB
#include <bits/stdc++.h>

using ll = long long;

using namespace std;

mt19937 mt(time(nullptr));

vector<ll> tmp, origin, dp;

ll calc(ll x, int pos) {
    ll sum = (1ll << pos) * tmp[pos];
    int ptr = pos;
    while (ptr > 0 && sum < (1ll << pos) * x) {
        ptr--;
        sum += (1ll << ptr) * tmp[ptr];
    }
    if (sum < (1ll << pos) * x) {
        return 1;
    }
    if (ptr == pos) {
        if (ptr == 0) {
            return 1;
        } else {
            return 2 * dp[ptr] - 1;
        }
    }
    tmp[ptr] = (sum - (1ll << pos) * x) / (1ll << ptr);
    ll res = calc(x, ptr);
    tmp[ptr] = origin[ptr];
    return res + (ptr ? dp[ptr - 1] : 0);
}

ll count_tastiness(ll x, vector<ll> a) {
    while (a.size() < 60) {
        a.push_back(0);
    }
    int n = 60;
    for (int i = 0; i < n; i++) {
        if (a[i] > x + 1) {
            a[i + 1] += (a[i] - x) / 2;
            a[i] -= (a[i] - x) / 2;
        }
    }
    origin = a;
    tmp.resize(n);
    tmp = a;
    dp.resize(n, 0);
    ll res = 0;
    for (int i = 0; i < n; i++) {
        dp[i] = calc(x, i);
        res += dp[i];
    }
    return res;
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -