CR7CR7

problem03

Jul 30th, 2023
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. //User function Template for C++
  2.  
  3.  
  4.  
  5. class Solution {
  6. public:
  7.     int TotalPairs(vector<int>& nums, int x, int y) {
  8.         int n = nums.size();
  9.         sort(nums.begin(), nums.end());
  10.         int count = 0;
  11.         for (int i = 0; i < n; i++) {
  12.             int lo = i + 1, hi = n - 1, idx = n;
  13.             while (lo <= hi) {
  14.                 int mid = (lo + hi) / 2;
  15.                 if (nums[i] * nums[mid] >= x) {
  16.                     idx = mid;
  17.                     hi = mid - 1;
  18.                 } else {
  19.                     lo = mid + 1;
  20.                 }
  21.             }
  22.             if (idx == n) {
  23.                 continue;
  24.             }
  25.             int lo2 = i + 1, hi2 = n - 1, idx2 = -1;
  26.             while (lo2 <= hi2) {
  27.                 int mid2 = (lo2 + hi2) / 2;
  28.                 if (nums[i] * nums[mid2] > y) {
  29.                     hi2 = mid2 - 1;
  30.                 } else {
  31.                     idx2 = mid2;
  32.                     lo2 = mid2 + 1;
  33.                 }
  34.             }
  35.             if (idx2 == -1) {
  36.                 continue;
  37.             }
  38.             count += (idx2 - idx + 1);
  39.         }
  40.         return count;
  41.     }
  42. };
  43.  
  44.  
  45.  
Add Comment
Please, Sign In to add comment