Submission #866986

#TimeUsernameProblemLanguageResultExecution timeMemory
866986LalicAbracadabra (CEOI22_abracadabra)C++17
10 / 100
3012 ms33456 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") using namespace std; #define fi first #define se second #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MAXN = 1e5+10; const int INF = 0x3f3f3f3f; const ll LINF = 0x3f3f3f3f3f3f3f3f; const ll MOD = 1e9+7; const ll inv2 = 500000004; void solve(){ int n, q; cin >> n >> q; vector<int> arr(n); int mx=0; for(int i=0;i<n;i++) cin >> arr[i], mx=max(mx, (i<n/2 ? arr[i] : -1)); vector<pair<pii, int>> query(q); for(int i=0;i<q;i++) cin >> query[i].fi.fi >> query[i].fi.se, query[i].se=i; sort(all(query)); vector<int> ans(q); int cnt=0; for(int i=0;i<q;i++){ while(mx>arr[n/2] && cnt<query[i].fi.fi){ cnt++; vector<int> att; mx=0; int ptr=n/2; for(int i=0;i<n/2;i++){ while(ptr<n && arr[ptr]<arr[i]){ if((int)att.size()<n/2) mx=max(mx, arr[ptr]); att.pb(arr[ptr++]); } if((int)att.size()<n/2) mx=max(mx, arr[i]); att.pb(arr[i]); } arr=att; } ans[query[i].se]=arr[query[i].fi.se-1]; } for(int i=0;i<q;i++) cout << ans[i] << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); // freopen("fetiera.in", "r", stdin); int tt=1; // cin >> tt; while(tt--) solve(); 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...