#include <bits/stdc++.h>
#define int long long
using namespace std;
int a;
int z[1000005];
int f[4000005];
vector <int> v;
void update(int id,int l,int r,int pos,int val){
    if (l==r){
        f[id]+=val;
        return;
    }
    int mid=(l+r)/2;
    if (pos<=mid){
        update(id*2,l,mid,pos,val);
    }else{
        update(id*2+1,mid+1,r,pos,val);
    }
    f[id]=f[id*2]+f[id*2+1];
}
int get(int id,int l,int r,int val){
    if (l==r){
        return l;
    }
    int mid=(l+r)/2;
    if (f[id*2]<val){
        return get(id*2+1,mid+1,r,val-f[id*2]);
    }else{
        return get(id*2,l,mid,val);
    }
}
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> a;
    int cur=0;
    for (int i=1;i<=a;i++){
         cin >> z[i];
         int cnt=1;
         while (z[i]%2==0){
             cnt*=2;
             z[i]/=2;
         }
         update(1,1,a,i,cnt);
    }
   // cout << "\n";
    int q;
    cin >> q;
    while (q--){
         int x;
         cin >> x;
         int pos=get(1,1,a,x);
         cout << z[pos] << "\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... |