#include <iostream>
#include <vector>
using namespace std;
int N, Q;
vector<vector<int>> A;
int main() {
cin >> N >> Q;
A.resize(N + 1);
A[0].resize(N);
for (int i = 0; i < N; i++) {
cin >> A[0][i];
// A[0][i]--;
// cout << A[0][i] << ' ';
}
// cout << endl;
for (int i = 1; i < N + 1; i++) {
// cout << "pocitam t = " << i << endl;
A[i].resize(N);
int x = 0, y = N / 2;
while ((x < N / 2) && (y < N)) {
if (A[i - 1][x] < A[i - 1][y]) {
A[i][x + y - N / 2] = A[i - 1][x];
// cout << "X\n";
x++;
} else {
A[i][x + y - N / 2] = A[i - 1][y];
// cout << "Y\n";
y++;
}
}
while (x < N / 2) {
A[i][x + y - N / 2] = A[i - 1][x];
// cout << "x0\n";
x++;
}
while (y < N) {
A[i][x + y - N / 2] = A[i - 1][y];
// cout << "y0\n";
y++;
}
for (int j = 0; j < N; j++) {
// cout << A[i][j] << ' ';
}
// cout << endl;
}
for (int q = 0; q < Q; q++) {
int t, i;
cin >> t >> i; i--;
cout << A[min(t, N)][i] << endl;
}
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... |