Submission #1065892

#TimeUsernameProblemLanguageResultExecution timeMemory
1065892vjudge1Packing Biscuits (IOI20_biscuits)C++17
12 / 100
10 ms1276 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()); int MN = 63; vll C(MN, 0); for(int i = 0; i < MN; ++i) { if(i < n) C[i] = a[i] * (1ll << i); if(i) C[i] += C[i - 1]; } for(int i = 0; i < MN; ++i) C[i] /= x; vll F(MN, 0); F[0] = 1; function<ll(int, ll)> taie = [&](int k, ll lim) -> ll { if(lim < 0) return 0ll; if(lim >= (1ll << k) - 1) return F[k]; //k > 0 de aici ll mij = (1ll << (k - 1)) - 1; if(lim <= mij) return taie(k - 1, lim); return taie(k - 1, lim - mij - 1) + F[k - 1]; }; for(int i = 1; i < MN; ++i) { //cout << C[i - 1] << " "; F[i] = F[i - 1] + taie(i - 1, C[i - 1] - (1ll << (i - 1))); } // cout << "\n"; // for(auto it : F) // cout << it << " "; // cout << "\n"; return F.back(); }
#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...