#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mmod = 998244353;
#define vl vector<long long>
#define vll vector<vector<long long>>
#define pl pair<long long, long long>
#define vb vector<bool>
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll n, q;
cin >> n >> q;
vl nums(n);
for (ll i = 0; i < n; i++){cin >> nums[i];}
vl ans(q);
vll query;
for (ll i = 0; i < q; i++){
ll a, b;
cin >> a >> b;
query.push_back({min(n,a), b, i});
}
sort(query.begin(), query.end());
ll t = 0;
for(ll i = 0; i < q; i++){
while (t < query[i][0]){
t++;
vl new_nums;
ll a = 0; ll b = n/2;
while (a < n/2 && b < n){
if (nums[a] < nums[b]){
new_nums.push_back(nums[a]);
a++;
}
else{
new_nums.push_back(nums[b]);
b++;
}
}
while (a < n/2){new_nums.push_back(nums[a]); a++;}
while (b < n){new_nums.push_back(nums[b]), b++;}
nums.clear();
nums = new_nums;
}
if(t == query[i][0]){
ans[query[i][2]] = nums[query[i][1]-1];
}
}
for (ll i = 0; i < q; i++)cout << ans[i] << "\n";
return 0;
}
# | 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... |