Submission #1226196

#TimeUsernameProblemLanguageResultExecution timeMemory
1226196adam17Abracadabra (CEOI22_abracadabra)C++20
0 / 100
924 ms589824 KiB
#include <iostream>
#include <vector>
using namespace std;

int N, Q;

vector<vector<int>> A;

int main() {
    cin >> N >> Q;
    A.resize(N / 2 + 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 / 2 + 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 / 2)][i] << endl;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...