Advertisement
Ritam_C

Interesting drink

Mar 30th, 2021
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ull unsigned long long int
  4. #define ld long double
  5. #define pb push_back
  6. #define p_b pop_back
  7. #define si stack<int>
  8. #define sll stack<ll>
  9. #define sc stack<char>
  10. #define vi vector<int>
  11. #define vll vector<ll>
  12. #define mii map<int, int>
  13. #define msi map<string, int>
  14. #define mci map<char, int>
  15. #define qc queue<char>
  16. #define qi queue<int>
  17. #define qll queue<ll>
  18. using namespace std;
  19.  
  20. long bin_search(vector<long> v, ll x, long s, long e){
  21.     long mid = s+(e-s)/2;
  22.     if(v[mid] == x){
  23.         return mid+1;
  24.     } else if(v[s] <= x && v[mid] > x){
  25.         return bin_search(v, x, s, mid-1);
  26.     } else if(v[e] >= x && v[mid] < x){
  27.         return bin_search(v, x, mid+1, e);
  28.     } else{
  29.         if(v[e] < x){
  30.             return e+1;
  31.         } else{
  32.             return s;
  33.         }
  34.     }
  35. }
  36.  
  37. int main(){
  38.     ios_base::sync_with_stdio(false);
  39.     cin.tie(NULL);
  40.     long n, q;
  41.     cin >> n;
  42.     vector<long> v;
  43.     while(n--){
  44.         long x;
  45.         cin >> x;
  46.         v.pb(x);
  47.     }
  48.     sort(v.begin(), v.end());
  49.     cin >> q;
  50.     while(q--){
  51.         ll m;
  52.         cin >> m;
  53.         if(m >= v[v.size()-1]){
  54.             cout << v.size() << "\n";
  55.         } else if(m < v[0]){
  56.             cout << "0\n";
  57.         } else{
  58.             cout << bin_search(v, m, 0, v.size()-1) << "\n";
  59.         }
  60.     }
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement