Submission #760190

#TimeUsernameProblemLanguageResultExecution timeMemory
760190PetrixIntercastellar (JOI22_ho_t1)C++17
100 / 100
377 ms10728 KiB
#include <iostream> using namespace std; struct sirNou{ long long s,e,val; } v[200001]; void gasesteVal(long long a,long long i){ long long 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() { long long 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...