Submission #1065740

#TimeUsernameProblemLanguageResultExecution timeMemory
1065740vjudge1Packing Biscuits (IOI20_biscuits)C++17
0 / 100
3 ms348 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using vll = vector<ll>;
using i128 = __int128;

ll count_tastiness(ll x, vll a) {
    int n = int(a.size());
    vector<i128> S(n, 0);
    for(int i = 0; i < n; ++i) {
        S[i] = i128(1ll << i) * a[i];
        if(i) S[i] += S[i - 1];
    }
    vll C(n, 0);
    for(int i = 0; i < n; ++i) {
        S[i] /= x;
        if(S[i] >= i128(1ll << (i + 1)) - 1) C[i] = (1ll << (i + 1)) - 1;
        else C[i] = ll(S[i]);
    }
    int re = 0;
    const int MV = 100003;
    for(int i = 0; i < min(MV, 1 << n); ++i) {
        ll v = 0;
        int ok = 1;
        for(int j = 0; j < n; ++j) {
            if(i & (1ll << j)) v |= (1ll << j);
            if(v > S[j]) {
                ok = 0;
                break;
            }
        }
        re += ok;
    }
	return re;
}

#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...