Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int bin_search(int x, vector <int> &A) {
- int l = 0, r = A.size();
- while(l < r - 1){
- int mid = (l + r)/2;
- if (A[mid] > x)
- r = mid;
- else
- l = mid;
- }
- if (l == A.size() - 1 || A[r] - x >= x - A[l]) {
- while(l > 0 && A[l-1] == A[l]) --l;
- return l;
- }
- return r;
- }
- int main()
- {
- int n, m;
- cin >> n;
- vector <int> A(n);
- for (int i = 0; i < n; ++i){
- cin >> A[i];
- }
- cin >> m;
- for (int i = 0; i < m; ++i){
- int x;
- cin >> x;
- cout << bin_search(x, A) << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement