제출 #1234938

#제출 시각아이디문제언어결과실행 시간메모리
1234938avighnaAbracadabra (CEOI22_abracadabra)C++20
10 / 100
3095 ms19880 KiB
#include <bits/stdc++.h>

int main() {
  int n, q;
  std::cin >> n >> q;
  std::vector<int> a(n);
  for (int &i : a) {
    std::cin >> i;
    i--;
  }
  struct Query {
    int t, i, idx;
  };
  std::vector<Query> queries(q);
  for (int i = 0; i < q; ++i) {
    std::cin >> queries[i].t >> queries[i].i;
    queries[i].i--;
    queries[i].idx = i;
  }
  std::sort(queries.begin(), queries.end(), [](Query a, Query b) {
    return a.t < b.t;
  });
  int cur_t = 0;
  bool deactivated = false;
  std::vector<int> ans(q);
  for (auto &[t, i, idx] : queries) {
    while (cur_t < t and !deactivated) {
      std::vector<int> next(n);
      std::merge(a.begin(), a.begin() + n / 2, a.begin() + n / 2, a.end(), next.begin());
      deactivated |= a == next;
      a = next;
      cur_t++;
    }
    ans[idx] = a[i];
  }

  for (int &i : ans) {
    std::cout << i + 1 << '\n';
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...