Submission #752039

#TimeUsernameProblemLanguageResultExecution timeMemory
752039taniakallosIntercastellar (JOI22_ho_t1)C++14
100 / 100
474 ms9388 KiB
#include <iostream> using namespace std; const int N = 2e5; int n, q; int v[N+1], exp[N+1]; long long pw[N+1]; int cb(int st, int dr, long long val) //>= { while (st <= dr) { int mid = (st+dr)/2; if (val <= pw[mid]) dr = mid-1; else st = mid+1; } return st; } int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> v[i]; for (int i = 1; i <= n; i++) { int cop = v[i], nr = 0; while ((cop & 1) == 0) { cop = (cop >> 1); nr++; } exp[i] = nr; } for (int i = 1; i <= n; i++) pw[i] = 1 << exp[i]; for (int i = 1; i <= n; i++) pw[i] += pw[i-1]; cin >> q; for (int i = 1; i <= q; i++) { long long x; cin >> x; int p = cb(1, n, x); cout << (v[p] >> exp[p]) << '\n'; } return 0; }

Compilation message (stderr)

Main.cpp:8:13: warning: built-in function 'exp' declared as non-function [-Wbuiltin-declaration-mismatch]
    8 | int v[N+1], exp[N+1];
      |             ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...