Submission #646115

#TimeUsernameProblemLanguageResultExecution timeMemory
646115PagodePaivaIntercastellar (JOI22_ho_t1)C++14
100 / 100
89 ms11100 KiB
#include<bits/stdc++.h> #define int long long #define ms(v) memset(v, -1, sizeof v) #define pi pair<int, int> #define pb push_back #define fr first #define sc second #define srt(v) sort(v.begin(), v.end()) #define INF 1e15 using namespace std; int n; vector <pair <pi, int>> v; void buscab(int x){ int l = 0, r = v.size()-1; int res = -1; while(l <= r){ int mid = (l+r) >> 1; if(v[mid].fr.fr <= x and x <= v[mid].fr.sc){ res = mid; break; } else if(v[mid].fr.sc < x){ l = mid+1; } else{ r = mid; } } cout << v[res].sc << "\n"; return; } int32_t main(){ ios::sync_with_stdio(false); cin.tie(0); cin >> n; int st = 1; for(int i = 1;i <= n;i++){ int x; cin >> x; int con = 1; while(x % 2 == 0){ x /= 2; con *= 2; } v.pb({{st, st + con - 1}, x}); st = st + con; } int q; cin >> q; for(int i = 1;i <= q;i++){ int x; cin >> x; buscab(x); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...