Submission #702837

#TimeUsernameProblemLanguageResultExecution timeMemory
702837stevancvIntercastellar (JOI22_ho_t1)C++14
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define sp ' ' #define en '\n' #define smin(a, b) a = min(a, b) #define smax(a, b) a = max(a, b) using namespace std; const int N = 2e5 + 2; const int inf = 2e9; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; vector<ll> a(n), b(n, 1); for (int i = 0; i < n; i++) { cin >> a[i]; while (true) { if (a[i] % 2 == 1) break; else {b[i] *= 2; a[i] /= 2;} } if (i > 0) b[i] += b[i - 1]; cout << a[i] << sp << b[i] << en; } int q; cin >> q; while (q--) { ll x; cin >> x; int l = 0, r = n - 1, ans = -1; while (l <= r) { int mid = l + r >> 1; if (x <= b[mid]) { ans = mid; r = mid - 1; } else l = mid + 1; } cout << a[ans] << en; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:31:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   31 |             int mid = l + r >> 1;
      |                       ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...