Submission #789296

#TimeUsernameProblemLanguageResultExecution timeMemory
789296ymmAbracadabra (CEOI22_abracadabra)C++17
10 / 100
3058 ms43080 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx") #include <bits/stdc++.h> #define Loop(x,l,r) for (ll x = (l); x < (r); ++x) typedef long long ll; typedef std::pair<int,int> pii; using namespace std; vector<int> shf(vector<int> vec) { int n = vec.size(); vector<int> ans; int p0 = 0, p1 = n/2; Loop (_,0,n) { if (p1 == n || (p0 < n/2 && vec[p0] < vec[p1])) ans.push_back(vec[p0++]); else ans.push_back(vec[p1++]); } return ans; } const int N = 1'000'010; int ans[N]; vector<pii> Q[N]; int main() { cin.tie(0) -> sync_with_stdio(false); int n, q; cin >> n >> q; vector<int> vec(n); //iota(vec.begin(), vec.end(), 0); //auto pleh = vec; //int cntt = 0; //for (;;) { // int cnt = 0; // vec = pleh; // for (;;) { // auto tmp = shf(vec); // if (tmp == vec) // break; // vec = tmp; // ++cnt; // } // cntt = max(cntt, cnt); // if (!next_permutation(pleh.begin(), pleh.end())) // break; //} //cout << cntt << '\n'; //return 0; //mt19937_64 rd(chrono::high_resolution_clock::now().time_since_epoch().count()); //iota(vec.begin(), vec.end(), 0); //shuffle(vec.begin(), vec.end(), rd); for (int &x : vec) cin >> x; //vecs.push_back(vec); Loop (i,0,q) { int t, p; cin >> t >> p; --p; t = min(t, n); Q[t].push_back({p, i}); } Loop (i,0,n) { for (auto [p, j] : Q[i]) ans[j] = vec[p]; inplace_merge(vec.data(), vec.data()+n/2, vec.data()+n);//vec = shf(vec); //vec = shf(vec); } for (auto [p, j] : Q[n]) ans[j] = vec[p]; Loop (i,0,q) cout << ans[i] << '\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...