Submission #760179

#TimeUsernameProblemLanguageResultExecution timeMemory
760179PetrixIntercastellar (JOI22_ho_t1)C++17
25 / 100
340 ms4828 KiB
#include <iostream> using namespace std; struct sirNou{ int s,e,val; } v[200001]; void gasesteVal(int a,int i){ int put=1; while(a%2==0){ put*=2; a/=2; } v[i].s=v[i-1].e+1; v[i].e=v[i-1].e+put; v[i].val=a; } int main() { int n,i,q,st,dr,mij,a,gas; cin>>n; for(i=1;i<=n;i++){ cin>>a; if(a%2==1){ v[i].val=a; v[i].s=v[i].e=v[i-1].e+1; }else{ gasesteVal(a,i); } } cin>>q; for(i=0;i<q;i++){ cin>>gas; st=1;dr=n; while(st<=dr){ mij=(st+dr)/2; if(v[mij].s<=gas && v[mij].e>=gas){ cout<<v[mij].val<<"\n"; break; }else if(v[mij].s>gas){ dr=mij-1; }else{ st=mij+1; } } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...