fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define Samurai ios_base::sync_with_stdio(false), cout.tie(NULL), cin.tie(NULL);
  4. #define pr_g priority_queue<int, vector<int>,greater<int>>
  5. int dx [] = {0, 0, 1, -1, 1, 1, -1, -1};
  6. int dy [] = {-1, 1, 0, 0, -1, 1, 1, -1};
  7. const double PI = acos(-1.0);
  8. #define el '\n'
  9. #define ll long long
  10. const ll mod = 1e9+7, N = 3e5 + 5, OO = 0x3f3f3f3f;
  11.  
  12. int upper(int t, vector<int>&v){
  13. int l = 0, r = v.size() - 1, ans = v.size();
  14. while (l <= r){
  15. int mid = (l + r) / 2;
  16. if (v[mid] > t){
  17. ans = mid;
  18. r = mid - 1;
  19. }
  20. else
  21. l = mid + 1;
  22. }
  23. return ans;
  24. }
  25.  
  26. int lower(int t, vector<int>&v){
  27. int l = 0, r = v.size() - 1, ans = v.size();
  28. while (l <= r){
  29. int mid = (l + r) / 2;
  30. if (v[mid] >= t){
  31. ans = mid;
  32. r = mid - 1;
  33. }
  34. else
  35. l = mid + 1;
  36. }
  37. return ans;
  38. }
  39.  
  40. int main() { Samurai
  41. int _t = 1; //cin >> _t;
  42. for (int i = 1; i <= _t; i++){
  43. int n; cin >> n;
  44. vector<int>v(n);
  45. for(auto &i:v) cin >> i;
  46. sort(v.begin(),v.end());
  47. int q; cin >> q;
  48. while (q--){
  49. int l,r; cin >> l >> r;
  50. cout << upper(r,v) - lower(l,v) << ' ';
  51. }
  52. }
  53. return 0;
  54. }
  55.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Standard output is empty