Submission #956688

#TimeUsernameProblemLanguageResultExecution timeMemory
956688fskaricaAbracadabra (CEOI22_abracadabra)C++14
10 / 100
2825 ms524288 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define pii pair<int, int> int n, q; int x, y; vector <int> v; vector <int> sol[1000]; vector <int> f() { vector <int> ret; int a = 0; int b = n / 2; while (a < n / 2 || b < n) { if (a == n / 2) { ret.push_back(v[b]); b++; } else if (b == n) { ret.push_back(v[a]); a++; } else { if (v[a] < v[b]) { ret.push_back(v[a]); a++; } else { ret.push_back(v[b]); b++; } } } return ret; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); srand(time(0)); cin >> n >> q; for (int i = 0; i < n; i++) { cin >> x; v.push_back(x); } // for (int i = 1; i <= n; i++) v.push_back(i); // random_shuffle(v.begin(), v.end()); int cnt = 0; sol[0] = v; while (true) { if (v == f()) break; v = f(); cnt++; sol[cnt] = v; } while (q--) { cin >> x >> y; if (x > cnt) cout << sol[cnt][y - 1] << "\n"; else cout << sol[x][y - 1] << "\n"; } 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...