Advertisement
El_GEMMY

1538C

Dec 27th, 2022
699
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. #include <ext/pb_ds/assoc_container.hpp>
  3. #include <ext/pb_ds/tree_policy.hpp>
  4. #define Num_of_Digits(n) ((int)log10(n) + 1)
  5. #define sz(x) int(x.size())
  6. #define all(vec) vec.begin(), vec.end()
  7. #define rall(vec) vec.rbegin(), vec.rend()
  8. #define fixed(n) fixed << setprecision(n)
  9. #define ll long long
  10. #define ull unsigned long long
  11. #define ceil(w, m) (((w) / (m)) + ((w) % (m) ? 1 : 0))
  12. #define PI 3.14159
  13. #define OO 2000000000
  14. #define cin(v) for (auto&i:v) cin >> i;
  15. #define cout(v) for (auto&i:v) cout << i << " "; cout << "\n";
  16. #define cin_2d(vec, n, m) for(int i = 0; i < n; i++) for(int j = 0; j < m && cin >> vec[i][j]; j++);
  17. //#define Time cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " Secs" << "\n";
  18. #define MOD 1000000007
  19. #define multiOrderedSet tree <int, null_type, greater<int>, rb_tree_tag,tree_order_statistics_node_update>
  20. #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
  21. using namespace std;
  22. using namespace __gnu_pbds;
  23.  
  24. void btats()
  25. {
  26.     ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  27. #ifndef ONLINE_JUDGE
  28.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  29. #endif
  30.     //freopen("input.txt", "r", stdin);
  31.     //freopen("output.txt", "w", stdout);
  32. }
  33. int sz;
  34. vector <ll> v;
  35. int bs(int value)
  36. {
  37.     int r = sz, l = -1;
  38.     while(l < r - 1)
  39.     {
  40.         int mid = l + (r - l) / 2;
  41.         if(v[mid] <= value)
  42.             l = mid;
  43.         else
  44.             r = mid;
  45.     }
  46.     return ++l;
  47. }
  48.  
  49. void solve()
  50. {
  51.     ll l , r , ans = 0;
  52.     cin >> sz >> l >> r;
  53.     v = vector <ll> (sz);
  54.     cin(v);
  55.     sort(all(v));
  56.     for(int i = 0; i < sz; i++)
  57.     {
  58.         int low = l - v[i];
  59.         int high = r - v[i];
  60.         ans += bs(high);
  61.         ans -= bs(low - 1);
  62.         if(l <= 2 * v[i] and 2 * v[i] <= r)
  63.             ans--;
  64.     }
  65.     cout << ans / 2;
  66. }
  67.  
  68. int main()
  69. {
  70.     btats();
  71.     int test = 1;
  72.     cin >> test;
  73.     while(test--)
  74.     {
  75.         solve();
  76.         cout << "\n";
  77.     }
  78.     //Time
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement