#include <iostream>
#include <vector>
using namespace std;
#define ll long long
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n;
cin >> n;
vector<ll> arr(n);
vector<ll> finalPosOfSeg(n);
ll currPos = 0;
for (ll i = 0; i < n; i++) {
cin >> arr[i];
ll cnt = 0;
while (arr[i] % 2 == 0) { // keep dividing until odd
cnt++;
arr[i] /= 2;
}
currPos += (1LL << cnt); // use bit shift instead of pow
finalPosOfSeg[i] = currPos - 1;
}
ll q;
cin >> q;
vector<ll> xs(q);
for (ll i = 0; i < q; i++) {
cin >> xs[i];
}
ll l = 0;
for (ll i = 0; i < q; i++) {
ll x = xs[i] - 1; // convert to 0-index
while (finalPosOfSeg[l] < x) {
l++;
}
cout << arr[l] << "\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |