제출 #1268096

#제출 시각아이디문제언어결과실행 시간메모리
1268096lambd47Intercastellar (JOI22_ho_t1)C++20
100 / 100
53 ms5448 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...