Submission #1311059

#TimeUsernameProblemLanguageResultExecution timeMemory
1311059aaaaaaaaBubble Sort Machine (JOI25_bubble)C++20
11 / 100
36 ms4560 KiB
#include <bits/stdc++.h> using namespace std; const int inf = 1e9; signed main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); int n, q; cin >> n; vector<int> a(n + 1, 0), pmn(n + 2, inf); for(int i = 1; i <= n; ++i) cin >> a[i]; for(int i = 1; i <= n; ++i){ pmn[i] = min(pmn[i - 1], a[i]); } vector<pair<int, int>> id; for(int i = 1; i <= n; ++i){ if(pmn[i] != pmn[i - 1]){ id.push_back({i - 1, pmn[i]}); } } cin >> q; int update = 0; while(q--){ int t, l, r; cin >> t; if(t == 1){ update += 1; }else{ cin >> l >> r; assert(l == r); if(update >= id.back().first){ cout << id.back().second << "\n"; continue; } int st = 0, en = (int) id.size() - 1, ans = -1; while(st <= en){ int mid = st + (en - st) / 2; if((mid + 1) >= (int) id.size()) en = mid - 1; int l = id[mid].first, r = id[mid + 1].first - 1; if(update < l) en = mid - 1; else if(update > r) st = mid + 1; else{ ans = id[mid].second; break; } } assert(ans != -1); cout << ans << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...