Advertisement
kxcoze

lwbd_binsrch_c++

Dec 7th, 2019
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #include "bits/stdc++.h"    
  2.  
  3. #define pb push_back
  4.  
  5. using namespace std;    
  6.    
  7. int main() {    
  8.     int n, k, t;
  9.     vector <int> N, K;                                                                  
  10.     cin >> n >> k;                                                                  
  11.     for (int i = 0; i < n; i++) {                                                                  
  12.         cin >> t;                                                                  
  13.         N.pb(t);                                                                  
  14.     }                                                                  
  15.     for (int i = 0; i < k; i++) {                                                                  
  16.         cin >> t;                                                                                            
  17.         K.pb(t);                                                                  
  18.     }                                                                                      
  19.     for (auto i : K) {                                                                                                      
  20.         int l = 0, r = n-1, m;                                                                          
  21.         while (l != r) {                                                                              
  22.             m = (l+r)/2;                                                                  
  23.             N[m] < i ? l = 1 + m : r = m;                                                                  
  24.         }                                                                  
  25.         if (i != N[r] && r > 0 && !(abs(N[r-1]-i) > abs(N[r] - i))) cout << N[r-1] << endl;                                  
  26.         else cout << N[r] << endl;                                                                                          
  27.     }                                                                                                
  28.     return 0;                                                                                        
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement