Submission #1016961

#TimeUsernameProblemLanguageResultExecution timeMemory
1016961dimashhhPacking Biscuits (IOI20_biscuits)C++17
0 / 100
17 ms1884 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 1; int ok[N]; int n,timer = 0; int hsb(ll x) { for(int i = 60;i >= 0;i--){ if((x >> i) & 1){ return i; } } return -1; } ll s[N]; ll count_tastiness(ll x, vector<ll> a){ ++timer;; n = (int)a.size(); for(int i = 0;i < n;i++){ s[i] = (1ll << i) * 1ll * a[i]; } for(int i =1;i <= 60;i++){ s[i] += s[i - 1]; } ok[0] = timer; int ret = 0; for(int i = 0;i < N;i++){ if(ok[i] == timer){ ret++; int t = hsb(i); // cout << i << ' ' << t << '\n'; for(int j = t + 1;j < 60;j++){ ll left = s[j] - i * 1ll * x; if(left >= (1ll << j) * 1ll * x){ ok[(i | (1ll << j))] = timer; } } } } return ret; }
#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...