Submission #1329397

#TimeUsernameProblemLanguageResultExecution timeMemory
1329397lywoemIntercastellar (JOI22_ho_t1)C++20
100 / 100
156 ms25700 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN

pair<ll, ll> factorize(ll A) {
    ll cnt = 1;
    while (!(A & 1)) {
        A >>= 1;
        cnt <<= 1;
    }

    return {cnt, A};
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    ll N, Q; cin >> N; vector<ll> vec(N + 1, 0);
    map<ll, ll> mp;
    set<ll> st;

    ll lastidx = 0;
    l(1, N + 1, i) {
        cin >> vec[i];
        ll cnt = factorize(vec[i]).first;
        ll length = factorize(vec[i]).second;

        lastidx += cnt;
        mp[lastidx] = length;
        st.insert(lastidx);
    }

    cin >> Q;
    l(1, Q + 1, i) {
        ll X; cin >> X;
        auto it = st.upper_bound(X);
        auto previ = prev(it);

        if (*previ == X) cout << mp[*previ] << "\n";
        else cout << mp[*it] << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...