제출 #867806

#제출 시각아이디문제언어결과실행 시간메모리
867806teeslaAbracadabra (CEOI22_abracadabra)C++17
10 / 100
3068 ms20100 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef pair<ii,int> iii; vector<int> v; int ok = 0; int n, q; void mix(){ vector<int> novo; int a = 0, b = n/2; for(int i=0; i<n; i++){ if(a == -1) {novo.push_back(v[b]);b++;} else if(b == -1){novo.push_back(v[a]); a++;} else{ if(v[a] < v[b]){ novo.push_back(v[a]); a++; } else{ novo.push_back(v[b]); b++; } } if(a >= n/2) a= -1; if(b >= n) b = -1; } ok = 1; for(int i=0; i<n; i++){ if(v[i] != novo[i]) ok = 0; } swap(novo, v); return; } int main(){ cin >> n >> q; v.resize(n); for(int i=0; i<n; i++) cin >> v[i]; vector<iii> aux(q); for(int i=0; i<q; i++){ int t,pos; cin >> t >> pos; aux[i] = {{t,pos}, i}; } sort(aux.begin(), aux.end()); vector<int> res(q); int t = 0; for(auto [a,b] : aux){ auto [tt, pos] = a; while(t!= tt and ok == 0){ mix(); t++; } res[b] = v[pos-1]; } for(auto i: res) cout << i << 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...