이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |