Submission #1034962

#TimeUsernameProblemLanguageResultExecution timeMemory
1034962pccAbracadabra (CEOI22_abracadabra)C++17
10 / 100
3062 ms8276 KiB
#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 (stderr)

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++]);
      |        ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...