제출 #1208190

#제출 시각아이디문제언어결과실행 시간메모리
1208190minhpkIntercastellar (JOI22_ho_t1)C++20
100 / 100
65 ms8004 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int a; int z[1000005]; int f[4000005]; vector <int> v; void update(int id,int l,int r,int pos,int val){ if (l==r){ f[id]+=val; return; } int mid=(l+r)/2; if (pos<=mid){ update(id*2,l,mid,pos,val); }else{ update(id*2+1,mid+1,r,pos,val); } f[id]=f[id*2]+f[id*2+1]; } int get(int id,int l,int r,int val){ if (l==r){ return l; } int mid=(l+r)/2; if (f[id*2]<val){ return get(id*2+1,mid+1,r,val-f[id*2]); }else{ return get(id*2,l,mid,val); } } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> a; int cur=0; for (int i=1;i<=a;i++){ cin >> z[i]; int cnt=1; while (z[i]%2==0){ cnt*=2; z[i]/=2; } update(1,1,a,i,cnt); } // cout << "\n"; int q; cin >> q; while (q--){ int x; cin >> x; int pos=get(1,1,a,x); cout << z[pos] << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...