Submission #1005663

#TimeUsernameProblemLanguageResultExecution timeMemory
1005663MarwenElarbiIntercastellar (JOI22_ho_t1)C++17
100 / 100
259 ms10736 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #define fi first #define se second #define ll long long #define pb push_back #define ii pair<int,int> template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; const int nax=2e3+5; #define optimise ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int main() { optimise; int n; cin>>n; pair<long long,long long> tab[n]; for (int i = 0; i < n; ++i) { int x; int cnt=1; cin>>x; while(x%2==0){ cnt*=2; x/=2; } tab[i]={cnt,x}; } long long pre[n]; pre[0]=tab[0].fi; for (int i = 1; i < n; ++i) { pre[i]=tab[i].fi+pre[i-1]; } int q; cin>>q; while(q--){ long long x; cin>>x; int l=-1; int r=n-1; while(r-l>1){ int mid=(r+l)/2; if(pre[mid]>=x) r=mid; else l=mid; } cout << tab[r].se<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...