제출 #1276057

#제출 시각아이디문제언어결과실행 시간메모리
1276057hamligar555Bubble Sort Machine (JOI25_bubble)C++20
0 / 100
1524 ms75740 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; ll op=0; vector<ll> ans(n+1); for(ll i=1;i<=n;i++){ if(cnt[i]==i-1){ ans[i-1]=vt[i]; } } while(q--){ ll t; cin>>t; if(t==1){ op++; }else{ ll l,r; cin>>l>>r; cout<<ans[op]<<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...