Submission #1276060

#TimeUsernameProblemLanguageResultExecution timeMemory
1276060hamligar555Bubble Sort Machine (JOI25_bubble)C++20
11 / 100
1584 ms79288 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> // B O I // 1 2 3 vector<ll> fen; vector<ll> vt; ll sz; void upd(ll idx,ll val){ while(idx<=sz){ fen[idx]+=val; idx+=idx&(-idx); } } ll sum(ll idx){ ll res=0; while(idx>0){ res+=fen[idx]; idx-=idx&(-idx); } return res; } ll que(ll l,ll r){ if(r<l || r>sz) return 0; return sum(r)-sum(l-1); } void solve(){ ll n; cin>>n; vt.resize(n+1); vector<ll> ori(n+1); set<ll> st; map<ll,ll> mp; for(ll i=1;i<=n;i++){ cin>>vt[i]; st.insert(vt[i]); } ori=vt; ll num=1; for(auto &e:st) mp[e]=num++; for(auto &e:vt) e=mp[e]; sz=num+10; fen.resize(sz,0); // // cari banyak elemen di belakang yang strict lebih besar vector<ll> cnt(n+1); for(ll i=1;i<=n;i++){ cnt[i]=que(vt[i]+1,num); upd(vt[i],1); } vt.clear(); vt=ori; ll q; cin>>q; vector<ll> ans(n+1,-1); for(ll i=1;i<=n;i++){ if(cnt[i]==i-1){ ans[i-1]=vt[i]; } } // for(auto &e:cnt) // cout<<e<<" "; // cout<<endl; ll op=0; ll val=ans[0]; while(q--){ ll t; cin>>t; if(t==1){ if(op+1>n) continue; op++; if(ans[op]!=-1) val=ans[op]; }else{ ll l,r; cin>>l>>r; cout<<val<<endl; } } } int main(){ ios_base::sync_with_stdio(NULL); cin.tie(0); // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); solve(); }
#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...