제출 #702838

#제출 시각아이디문제언어결과실행 시간메모리
702838stevancvIntercastellar (JOI22_ho_t1)C++14
100 / 100
107 ms9184 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]; } 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; }

컴파일 시 표준 에러 (stderr) 메시지

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