Submission #803292

#TimeUsernameProblemLanguageResultExecution timeMemory
803292luciIntercastellar (JOI22_ho_t1)C++17
25 / 100
265 ms5408 KiB
#include<bits/stdc++.h> using namespace std; #define ioss ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define int long long #define tup tuple<int, int, int> #define pii pair<int, int> #define fi first #define se second #define pub push_back #define pob pop_back int n, arr[200004], q; signed main() { ioss; cin >> n; vector<pii> range(n+2); for(int i = 1; i <= n; i++) { cin >> arr[i]; int cnt = 0; for(int j = 0; j < 30; j++) { if(arr[i]%(1ll << j) == 0) cnt = (1ll << j); else { arr[i] = arr[i]/(1ll << (j-1)); break; } } range[i] = {range[i-1].se+1, range[i-1].se+cnt}; } cin >> q; for(int i = 1; i <= q; i++) { int x; cin >> x; int l = 1, r = n, ret = 0; while(l <= r) { int mid = (l+r)/2; auto [left, right] = range[mid]; if(x >= left && x <= right) { ret = mid; break; } if(x < left) r = mid-1; else l = mid+1; } cout << arr[ret] << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...