#include <bits/stdc++.h>
int main() {
int n, q;
std::cin >> n >> q;
std::vector<int> a(n);
for (int &i : a) {
std::cin >> i;
i--;
}
struct Query {
int t, i, idx;
};
std::vector<Query> queries(q);
for (int i = 0; i < q; ++i) {
std::cin >> queries[i].t >> queries[i].i;
queries[i].i--;
queries[i].idx = i;
}
std::sort(queries.begin(), queries.end(), [](Query a, Query b) {
return a.t < b.t;
});
int cur_t = 0;
std::vector<int> ans(q);
for (auto &[t, i, idx] : queries) {
while (cur_t < t) {
std::vector<int> next(n);
std::merge(a.begin(), a.begin() + n / 2, a.begin() + n / 2, a.end(), next.begin());
a = next;
cur_t++;
}
ans[idx] = a[i];
}
for (int &i : ans) {
std::cout << i + 1 << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |