Advertisement
Guest User

Untitled

a guest
Sep 19th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <set>
  5. #include <queue>
  6. #include <map>
  7. #include <string>
  8. #include <cmath>
  9. #include <functional>
  10. #include <algorithm>
  11. #include <utility>
  12. #include <stack>
  13. #include <unordered_map>
  14. #define ban long long
  15. using namespace std;
  16.  
  17. int main()
  18. {
  19.     ios_base::sync_with_stdio(0);
  20.     cin.tie(0), cout.tie(0);
  21.     int n1,n2; cin >> n1>>n2;
  22.     if (n1 == 0 || n2 == 0) return 0;
  23.     set <ban> ourset;
  24.     //map <ban, ban> num;
  25.     int i = 0;
  26.     while (n1--)
  27.     {
  28.         ban x; cin >> x;
  29.         ourset.insert(x);
  30.         /*num[x] = ++i;*/
  31.     }
  32.     vector <ban> a(n2);
  33.     for (int i = 0; i < n2; ++i) cin >> a[i];
  34.  
  35.     ban min = 1e9, x2;
  36.     int cntr = 0;
  37.     for (auto &el : a)
  38.     {
  39.         ++cntr;
  40.         auto it = ourset.lower_bound(el);
  41.         if (it != ourset.end())
  42.         {
  43.             if (abs(el - *it) < min)
  44.             {
  45.                 min = abs(el - *it);
  46.                 x2 = *it;
  47.             }
  48.         }
  49.         if (it != ourset.begin())
  50.         {
  51.             --it;
  52.             if ( abs(el - *it) <= min )
  53.             {
  54.                 min = abs(el - *it);
  55.                 x2 = *it;
  56.             }
  57.         }
  58.         if (cntr == a.size()) return cout << x2,0;
  59.         cout << x2<<endl;
  60.         min = 1e9;
  61.     }
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement