Submission #805220

#TimeUsernameProblemLanguageResultExecution timeMemory
805220becaidoPacking Biscuits (IOI20_biscuits)C++17
9 / 100
1089 ms724 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx,popcnt,sse4,abm") #include <bits/stdc++.h> using namespace std; #ifndef WAIMAI #include "biscuits.h" #endif #ifdef WAIMAI #define debug(HEHE...) cout << "[" << #HEHE << "] : ", dout(HEHE) void dout() {cout << '\n';} template<typename T, typename...U> void dout(T t, U...u) {cout << t << (sizeof...(u) ? ", " : ""), dout(u...);} #else #define debug(...) 7122 #endif #define ll long long #define Waimai ios::sync_with_stdio(false), cin.tie(0) #define FOR(x,a,b) for (int x = a, I = b; x <= I; x++) #define pb emplace_back #define F first #define S second ll count_tastiness(ll x, vector<ll> a) { ll ans = 0; a.resize(64); vector<ll> sum(64); sum[0] = a[0]; FOR (i, 1, 63) sum[i] = sum[i - 1] + (a[i] << i); auto rec = [&](auto rec, int i, ll cur)->void { if (i < 0) { ans++; return; } cur = min(cur, sum[i]); rec(rec, i - 1, cur); if ((cur >> i) >= x) rec(rec, i - 1, cur - (x << i)); }; rec(rec, 63, sum[63]); return ans; } /* in1 2 3 3 5 2 1 3 2 2 1 2 out1 5 6 */ #ifdef WAIMAI int main() { int q; assert(scanf("%d", &q) == 1); vector<int> k(q); vector<ll> x(q); vector<vector<ll>> a(q); vector<ll> results(q); for (int t = 0; t < q; t++) { assert(scanf("%d%lld", &k[t], &x[t]) == 2); a[t] = vector<ll>(k[t]); for (int i = 0; i < k[t]; i++) { assert(scanf("%lld", &a[t][i]) == 1); } } fclose(stdin); for (int t = 0; t < q; t++) { results[t] = count_tastiness(x[t], a[t]); } for (int t = 0; t < q; t++) { printf("%lld\n", results[t]); } fclose(stdout); return 0; } #endif
#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...