#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 1e3 + 10;
int n, q, a[maxn];
void read (){
cin >> n >> q;
for (int i = 0; i < n; i++)
cin >> a[i];
}
void update (){
vector <int> v1, v2;
for (int i = 0; i < n / 2; i++) v1.push_back(a[i]);
for (int i = n / 2; i < n; i++) v2.push_back(a[i]);
reverse(v1.begin(), v1.end());
reverse(v2.begin(), v2.end());
int ind = 0;
while (v1.size() && v2.size()){
if (v1.back() < v2.back()){
a[ind] = v1.back();
v1.pop_back();
}
else{
a[ind] = v2.back();
v2.pop_back();
}
ind++;
}
while (v1.size()){
a[ind] = v1.back();
v1.pop_back();
ind++;
}
while (v2.size()){
a[ind] = v2.back();
v2.pop_back();
ind++;
}
}
int ans[maxn][maxn];
void solve (){
for (int i = 0; i <= n; i++){
for (int j = 0; j < n; j++)
ans[i][j] = a[j];
update();
}
while (q--){
int t, i; cin >> t >> i, i--;
cout << ans[min(t, n)][i] << '\n';
}
}
int32_t main (){
ios_base::sync_with_stdio(0), cin.tie(0);
read();
solve();
}
# | 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... |