Submission #982196

#TimeUsernameProblemLanguageResultExecution timeMemory
982196AiperiiiIntercastellar (JOI22_ho_t1)C++14
100 / 100
155 ms15684 KiB
#include <bits/stdc++.h> #define int long long #define ull unsigned long long #define ff first #define ss second #define pb push_back #define all(x) x.begin(),x.end() using namespace std; const int N=2e5+5; int kol[N],a[N],t[N*4]; void build(int v,int tl,int tr){ if(tl==tr)t[v]=kol[tl]; else{ int tm=(tl+tr)/2; build(v*2,tl,tm); build(v*2+1,tm+1,tr); t[v]=t[v*2]+t[v*2+1]; } } int get(int v,int tl,int tr,int x){ if(tl==tr)return a[tl]; else{ int tm=(tl+tr)/2; if(t[v*2]<x)return get(v*2+1,tm+1,tr,x-t[v*2]); else return get(v*2,tl,tm,x); } } signed main(){ ios_base::sync_with_stdio(); cin.tie(0);cout.tie(0); int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]%2==1)kol[i]=1; else{ int x=a[i]; int cnt=1; while(x%2==0){ x/=2; cnt*=2; } kol[i]=cnt; a[i]=x; } } build(1,0,n-1); int q; cin>>q; while(q--){ int pos; cin>>pos; cout<<get(1,0,n-1,pos)<<"\n"; } } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...