Submission #1267641

#TimeUsernameProblemLanguageResultExecution timeMemory
1267641julia_08Intercastellar (JOI22_ho_t1)C++20
100 / 100
50 ms5444 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int MAXN = 2e5 + 10; ll a[MAXN], sum[MAXN]; int n; int bs(ll x){ int l = 1, r = n; while(l < r){ int m = l + (r - l) / 2; if(sum[m] >= x) r = m; else l = m + 1; } int lsb = __builtin_ctz(a[r]); return (a[r] >> lsb); } int main(){ cin.tie(0)->sync_with_stdio(0); cin >> n; for(int i=1; i<=n; i++) cin >> a[i]; for(int i=1; i<=n; i++){ int lsb = __builtin_ctz(a[i]); sum[i] = sum[i - 1] + (1LL << lsb); } int q; cin >> q; while(q--){ ll x; cin >> x; cout << bs(x) << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...