Submission #848654

#TimeUsernameProblemLanguageResultExecution timeMemory
848654JakobZorzAbracadabra (CEOI22_abracadabra)C++14
10 / 100
3032 ms32896 KiB
#include<iostream> #include<vector> #include<queue> #include<algorithm> #include<set> #include<stack> #include<limits.h> #include<math.h> #include<iomanip> #include<bitset> #include<unordered_map> #include<unordered_set> #include<map> #include<cstring> #include<sstream> #pragma GCC target("popcnt") typedef long long ll; typedef long double ld; using namespace std; const int MOD=1e9+7; typedef pair<ll,ll>point; //#define x first //#define y second struct Query{ int i,t; int index,ans; }; int n,q; vector<int>deck; Query queries[1000000]; void shuffle(){ vector<int>d1,d2; for(int i=0;i<n/2;i++) d1.push_back(deck[i]); for(int i=n/2;i<n;i++) d2.push_back(deck[i]); d1.push_back(1000000); d2.push_back(1000000); int i1=0,i2=0; deck.clear(); while(deck.size()<n){ if(d1[i1]>d2[i2]){ deck.push_back(d2[i2++]); }else if(d1[i1]<d2[i2]){ deck.push_back(d1[i1++]); } } } int get(int i){ return deck[i]; } bool cmp1(Query&a,Query&b){ return a.t<b.t; } bool cmp2(Query&a,Query&b){ return a.index<b.index; } int main(){ ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); cin>>n>>q; deck.resize(n); for(int&i:deck) cin>>i; for(int i=0;i<q;i++){ cin>>queries[i].t>>queries[i].i; queries[i].i--; queries[i].index=i; queries[i].t=min(queries[i].t,n); } sort(queries,queries+q,cmp1); int cq=0; for(int cs=0;cs<=n;cs++){ while(cq<q&&queries[cq].t==cs){ queries[cq].ans=get(queries[cq].i); cq++; } shuffle(); } sort(queries,queries+q,cmp2); for(int i=0;i<q;i++) cout<<queries[i].ans<<"\n"; return 0; } /* 6 3 1 5 6 2 3 4 1 2 0 4 1 5 2 2 5 6 6 2 1 5 4 6 3 0 1 1 1 0 3 1 3 0 6 10 6 2 2 5 4 3 3 */

Compilation message (stderr)

Main.cpp: In function 'void shuffle()':
Main.cpp:47:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   47 |     while(deck.size()<n){
      |           ~~~~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...