#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fs first
#define sc second
bool same(vector<int>&a,vector<int>&b){
assert(a.size() == b.size());
for(int i = 0;i<a.size();i++){
if(a[i] != b[i])return false;
}
return true;
}
vector<int> shuf(vector<int> &v){
vector<int> vl,vr;
int pl = 0,pr = 0;
for(int i = 0;i<v.size();i++){
if(i+i<v.size())vl.push_back(v[i]);
else vr.push_back(v[i]);
}
vector<int> re;
while(pl<vl.size()&&pr<vr.size()){
if(vl[pl]<vr[pr])re.push_back(vl[pl++]);
else re.push_back(vr[pr++]);
}
while(pl<vl.size())re.push_back(vl[pl++]);
while(pr<vr.size())re.push_back(vr[pr++]);
return re;
}
int N,Q;
int epo;
vector<vector<int>> all;
void check_loop(vector<int> v){
auto vv = v;
while(!same(v,vv = shuf(v))){
epo++;
vv.swap(v);
}
cerr<<"EPO: "<<epo<<endl;
return;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>N>>Q;
vector<int> v(N);
for(int i = 0;i<N;i++)cin>>v[i];
epo = 0;
all.push_back(v);
check_loop(v);
while(!same(all.back(),v = shuf(all.back()))){
all.push_back(v);
}
while(Q--){
int t,id;
cin>>t>>id;
t = min(t+1,(int)all.size())-1;
cout<<all[t][id-1]<<'\n';
}
return 0;
}
Compilation message
Main.cpp: In function 'bool same(std::vector<int>&, std::vector<int>&)':
Main.cpp:10:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
10 | for(int i = 0;i<a.size();i++){
| ~^~~~~~~~~
Main.cpp: In function 'std::vector<int> shuf(std::vector<int>&)':
Main.cpp:19:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
19 | for(int i = 0;i<v.size();i++){
| ~^~~~~~~~~
Main.cpp:20:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
20 | if(i+i<v.size())vl.push_back(v[i]);
| ~~~^~~~~~~~~
Main.cpp:24:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
24 | while(pl<vl.size()&&pr<vr.size()){
| ~~^~~~~~~~~~
Main.cpp:24:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
24 | while(pl<vl.size()&&pr<vr.size()){
| ~~^~~~~~~~~~
Main.cpp:28:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
28 | while(pl<vl.size())re.push_back(vl[pl++]);
| ~~^~~~~~~~~~
Main.cpp:29:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
29 | while(pr<vr.size())re.push_back(vr[pr++]);
| ~~^~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
125 ms |
8276 KB |
Output is correct |
2 |
Correct |
120 ms |
5204 KB |
Output is correct |
3 |
Correct |
140 ms |
5968 KB |
Output is correct |
4 |
Correct |
100 ms |
4208 KB |
Output is correct |
5 |
Correct |
116 ms |
4948 KB |
Output is correct |
6 |
Correct |
119 ms |
4432 KB |
Output is correct |
7 |
Correct |
130 ms |
4948 KB |
Output is correct |
8 |
Correct |
111 ms |
4480 KB |
Output is correct |
9 |
Correct |
116 ms |
4152 KB |
Output is correct |
10 |
Correct |
116 ms |
4432 KB |
Output is correct |
11 |
Correct |
124 ms |
4408 KB |
Output is correct |
12 |
Correct |
112 ms |
4180 KB |
Output is correct |
13 |
Correct |
111 ms |
4176 KB |
Output is correct |
14 |
Correct |
116 ms |
4692 KB |
Output is correct |
15 |
Correct |
120 ms |
4232 KB |
Output is correct |
16 |
Correct |
1 ms |
344 KB |
Output is correct |
17 |
Correct |
102 ms |
4076 KB |
Output is correct |
18 |
Correct |
108 ms |
4184 KB |
Output is correct |
19 |
Correct |
0 ms |
344 KB |
Output is correct |
20 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
3062 ms |
7716 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
3047 ms |
4084 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
125 ms |
8276 KB |
Output is correct |
2 |
Correct |
120 ms |
5204 KB |
Output is correct |
3 |
Correct |
140 ms |
5968 KB |
Output is correct |
4 |
Correct |
100 ms |
4208 KB |
Output is correct |
5 |
Correct |
116 ms |
4948 KB |
Output is correct |
6 |
Correct |
119 ms |
4432 KB |
Output is correct |
7 |
Correct |
130 ms |
4948 KB |
Output is correct |
8 |
Correct |
111 ms |
4480 KB |
Output is correct |
9 |
Correct |
116 ms |
4152 KB |
Output is correct |
10 |
Correct |
116 ms |
4432 KB |
Output is correct |
11 |
Correct |
124 ms |
4408 KB |
Output is correct |
12 |
Correct |
112 ms |
4180 KB |
Output is correct |
13 |
Correct |
111 ms |
4176 KB |
Output is correct |
14 |
Correct |
116 ms |
4692 KB |
Output is correct |
15 |
Correct |
120 ms |
4232 KB |
Output is correct |
16 |
Correct |
1 ms |
344 KB |
Output is correct |
17 |
Correct |
102 ms |
4076 KB |
Output is correct |
18 |
Correct |
108 ms |
4184 KB |
Output is correct |
19 |
Correct |
0 ms |
344 KB |
Output is correct |
20 |
Correct |
0 ms |
348 KB |
Output is correct |
21 |
Execution timed out |
3062 ms |
7716 KB |
Time limit exceeded |
22 |
Halted |
0 ms |
0 KB |
- |