제출 #855349

#제출 시각아이디문제언어결과실행 시간메모리
855349iulia_morariuIntercastellar (JOI22_ho_t1)C++17
100 / 100
275 ms9196 KiB
#include <bits/stdc++.h>

using namespace std;

int main(){
    cin.tie(0);ios::sync_with_stdio(0);

    //1.
    int n, q;

    //2.
    cin >> n;
    long long int v[n], l[n];
    vector <long long int> op(n + 1);
    op[0] = 0;

    //3.
    for(int i = 0; i < n; i++){
        cin >> v[i];
        op[i + 1] = 1;
        int v1 = v[i];
        while(v[i] % 2 == 0 && v[i] > 0){
            v[i] /= 2;
            op[i + 1] *= 2;
        }
        l[i] = v[i];
        v[i] = v1;
    }


    for(int i = 1; i <= n; i++) op[i] += op[i - 1];

    vector <long long int> pt(64);
    pt[0] = 1;
    for(int i = 1; i < 64; i++) pt[i] = pt[i - 1] * 2;

    cin >> q;
    for(int ii = 0; ii < q; ii++){
        long long int x; cin >> x;
        auto it = --upper_bound(op.begin(), op.end(), x);
        int p = it - op.begin();
        if(op[p] < x) p++;
        p--;

        //cout << x << " este un subordonat al nr " << v[p] << endl;
        //cout << "  -- > cu nr " << l[p] << endl;

        cout << l[p] << endl;
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...