Submission #1327790

#TimeUsernameProblemLanguageResultExecution timeMemory
1327790shirokuma5Abracadabra (CEOI22_abracadabra)C++20
10 / 100
1022 ms589824 KiB
#include<bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;

int main() {
    int n, q; cin >> n >> q;
    vector<vector<int>> cards(n + 1);
    rep(i, n) {
        int x; cin >> x; cards[0].push_back(x);
    }
    int last = 0;
    rep(i, n) {
        int l = 0, r = n / 2;
        while (l < n / 2 || r < n) {
            if (l == n / 2) cards[i+1].push_back(cards[i][r++]);
            else if (r == n) cards[i+1].push_back(cards[i][l++]);
            else if (cards[i][l] < cards[i][r]) cards[i+1].push_back(cards[i][l++]);
            else cards[i+1].push_back(cards[i][r++]);
        }
        if (cards[i] == cards[i+1]) {
            last = i; break;
        }
    }

    while (q--) {
        int t, i; cin >> t >> i;
        cout << cards[min(t, last)][i-1] << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...