#include <bits/stdc++.h>
using namespace std;
int main() {
int N, Q;
vector<vector<int>> vect;
cin >> N;
cin >> Q;
vect.push_back(vector<int>(N));
for(int i = 0; i < N; i++) {
cin >> vect[0][i];
}
bool b = true;
while(b) {
vect.push_back(vector<int>(N));
int i1 = 0;
int i2 = N / 2;
int i = 0;
while(i1 < N / 2 && i2 < N) {
if(vect[vect.size() - 2][i1] < vect[vect.size() - 2][i2]) {
vect[vect.size() - 1][i] = vect[vect.size() - 2][i1];
i1++;
}
else {
vect[vect.size() - 1][i] = vect[vect.size() - 2][i2];
i2++;
}
i++;
}
while(i1 < N / 2) {
vect[vect.size() - 1][i] = vect[vect.size() - 2][i1];
i1++;
i++;
}
while(i2 < N) {
vect[vect.size() - 1][i] = vect[vect.size() - 2][i2];
i2++;
i++;
}
b = false;
for(int j = 0; j < N; j++) {
if(vect[vect.size() - 1][j] != vect[vect.size() - 2][j])
b = true;
}
}
for(vector<int> v : vect) {
for(int a : v) {
//cerr << a << " ";
}
//cerr << "\n";
}
for(int j = 0; j < Q; j++) {
int t, i;
cin >> t;
cin >> i;
if(t >= vect.size())
cout << vect[vect.size() - 1][i - 1] << "\n";
else
cout << vect[t][i - 1] << "\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... |