Submission #703573

#TimeUsernameProblemLanguageResultExecution timeMemory
703573Jeff12345121Intercastellar (JOI22_ho_t1)C++14
100 / 100
203 ms14656 KiB
#include <bits/stdc++.h> #define int long long using namespace std; #ifdef LOCAL ifstream in("in.in"); ofstream out("out.out"); #else #define in cin #define out cout #endif const int nmax = 200005; int n,a[nmax],q,nr[nmax],val[nmax]; pair<int,int> get_nr(int x) { int nr = 1; while(x%2 == 0) { nr = nr * 2; x /= 2; } return {nr,x}; } pair<int,int> qs[nmax]; int sol[nmax]; int32_t main() { in >> n; for (int i = 1; i <= n; i++) { in >> a[i]; } for (int i = 1; i <= n; i++) { auto v = get_nr(a[i]); nr[i] = v.first; val[i] = v.second; nr[i] += nr[i - 1]; } in >> q; for (int i = 1; i <= q; i++) { int x; in >> x; qs[i] = {x, i}; } sort(qs + 1, qs + 1 + q); int p = 1; for (int i = 1; i <= q; i++) { while(nr[p] < qs[i].first) { p++; } sol[qs[i].second] = val[p]; } for (int i = 1; i <= q; i++) { out << sol[i] << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...