Submission #1198841

#TimeUsernameProblemLanguageResultExecution timeMemory
1198841ElayV13Abracadabra (CEOI22_abracadabra)C++20
10 / 100
3095 ms400084 KiB
#include <bits/stdc++.h> using namespace std; vector < int > shuffle(vector < int > v) { int sz = v.size(); vector < int > f , s; for(int i = sz / 2 - 1;i >= 0;i--) { f.push_back(v[i]); } for(int i = v.size() - 1;i >= sz / 2;i--) { s.push_back(v[i]); } vector < int > res; while(res.size() < v.size()) { if(!f.size()) { res.push_back(s[s.size() - 1]); s.pop_back(); } else if(!s.size()) { res.push_back(f[f.size() - 1]); f.pop_back(); } else { if(f[f.size() - 1] > s[s.size() - 1]) { res.push_back(s[s.size() - 1]); s.pop_back(); } else { res.push_back(f[f.size() - 1]); f.pop_back(); } } } return res; } const int N = 1001; const int ADD = 100001; int res[N + ADD][N]; signed main() { ios_base::sync_with_stdio(0);cin.tie(0); int n , q; cin >> n >> q; vector < int > a(n); for(int &i : a) cin >> i; for(int i = 0;i < n;i++) res[0][i] = a[i]; vector < int > last = a; int mx = -1; for(int i = 1;i <= n + ADD - 1;i++) { mx = max(mx , i); a = shuffle(a); for(int j = 0;j < n;j++) res[i][j] = a[j]; if(a == last) break; } while(q--) { int t , idx; cin >> t >> idx; t = min(t , mx); cout << res[t][idx - 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...