Submission #1226108

#TimeUsernameProblemLanguageResultExecution timeMemory
1226108svtkAbracadabra (CEOI22_abracadabra)C++20
10 / 100
948 ms8164 KiB
#include <iostream> using namespace std; const int N = 1002;//200'000; const int Q = 1'000'000; const int LN = N;//20; int n, q; int deck[LN][N]; int main(){ cin >> n >> q; for(int i=0; i<n; i++){ cin >> deck[0][i]; } for(int i=0; i<LN-1; i++){ int p1 = 0; int p2 = n/2; while(p1<n/2 and p2<n){ if(deck[i][p1] < deck[i][p2]){ deck[i+1][p1+p2-n/2] = deck[i][p1]; p1++; } else { deck[i+1][p1+p2-n/2] = deck[i][p2]; p2++; } } while(p1<n/2){ deck[i+1][p1+p2-n/2] = deck[i][p1]; p1++; } while(p2<n){ deck[i+1][p1+p2-n/2] = deck[i][p2]; p2++; } } for(int qi=0; qi<q; qi++){ int t, i; cin >> t >> i; if(t >= LN) t = LN-1; cout << deck[t][i-1] << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...