Submission #612295

#TimeUsernameProblemLanguageResultExecution timeMemory
612295boris_mihovIntercastellar (JOI22_ho_t1)C++14
100 / 100
100 ms8344 KiB
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>

typedef long long llong;
const int MAXN = 200000 + 10;

int a[MAXN], n, q;
llong prefix[MAXN];

void solve()
{
    for (int i = 1 ; i <= n ; ++i)
    {
        prefix[i] = prefix[i-1] + (a[i] & -a[i]);
    }

    int ptr = 1;
    llong x;
    
    for (int i = 1 ; i <= q ; ++i)
    {
        std::cin >> x;
        while (prefix[ptr] <= x-1) ++ptr;
        std::cout << a[ptr] / (a[ptr] & -(a[ptr])) << '\n';
    }
}

void read()
{
    std::cin >> n;
    for (int i = 1 ; i <= n ; ++i)
    {
        std::cin >> a[i];
    }

    std::cin >> q;
}

void fastIO()
{
    std::ios_base :: sync_with_stdio(0);
    std::cout.tie(nullptr);
    std::cin.tie(nullptr);
}

int main()
{
    fastIO();
    read();
    solve();

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