Submission #803605

#TimeUsernameProblemLanguageResultExecution timeMemory
803605luciIntercastellar (JOI22_ho_t1)C++17
25 / 100
238 ms5384 KiB
#include<bits/stdc++.h> using namespace std; #define ioss ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define int long long #define tup tuple<int, int, int> #define pii pair<int, int> #define fi first #define se second #define pub push_back #define pob pop_back int n, arr[200004], q; signed main() { ioss; cin >> n; vector<pii> range(n+2); for(int i = 1; i <= n; i++) { cin >> arr[i]; int cnt = 0; for(int j = 0; j < 30; j++) { if(arr[i]%(1ll << j) == 0) cnt = (1ll << j); else { arr[i] = arr[i]/(1ll << (j-1)); break; } } range[i] = {range[i-1].se+1, range[i-1].se+cnt}; } cin >> q; for(int i = 1; i <= q; i++) { int x; cin >> x; int l = 1, r = n; while(l <= r) { int mid = (l+r)/2; auto [left, right] = range[mid]; if(x >= left && x <= right) { cout << arr[mid] << endl; break; } if(x < left) r = mid-1; else if(x > right) l = mid+1; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...