#include <bits/stdc++.h>
#define int long long
using namespace std;
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(), (v).end()
#define L(i, j, k) for(int i = (j); i <= (k); ++i)
#define R(i, j, k) for(int i = (j); i >= (k); --i)
std::mt19937 rng(std::chrono::steady_clock::now().time_since_epoch().count());
void solve() {
int n;cin>>n;
vector<int> vec(n);
vector<int> qnt(n,1);
L(i,0,n-1)cin>>vec[i];
L(i,0,n-1){
while((vec[i]&1)==0){
vec[i]>>=1;
qnt[i]<<=1;
}
}
L(i,1,n-1)qnt[i]+=qnt[i-1];
// L(i,0,n-1)cout<<qnt[i]<<"\n";
int q;cin>>q;
while(q--){
int x;cin>>x;
int l=0;int r=n-1;
int ans=0;
while(l<=r){
int m=(l+r)/2;
if(qnt[m]>=x){
ans=m;
r=m-1;
}
else l=m+1;
}
cout<<vec[ans]<<"\n";
}
}
int32_t main() {
std::cin.tie(0)->sync_with_stdio(0);
std::cin.exceptions(std::cin.failbit);
int T = 1;
// std::cin >> T;
while(T--) {
solve();
}
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... |