Advertisement
zhukov000

Binary Search G

Dec 12th, 2019
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4.   int n, k;
  5.   cin >> n >> k;
  6.   vector<long long> v(n);
  7.   for(int i=0; i<n; ++i) cin >> v[i];
  8.   for(int i=0; i<k; ++i)
  9.   {
  10.     long long x;
  11.     cin >> x;
  12.     auto lit = lower_bound(v.begin(), v.end(), x);
  13.     auto uit = upper_bound(v.begin(), v.end(), x);
  14.     long long ans = 2e9+1;
  15.     if ( uit != lit )
  16.       ans = x;
  17.     else
  18.     {
  19.         if ( lit == v.begin() || lit != v.end() && lit[0] - x < x - lit[-1] )
  20.           ans = lit[0];
  21.         else
  22.           ans = lit[-1];
  23.     }
  24.     cout << ans << endl;
  25.   }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement