one of the best intitution for 2 binary search used and reduse time complexity in  <=1 sec
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\n#define ll long long\nclass Solution {\npublic:\n\n\tll countKaroProducts(vector<int>& a, vector<int>& b, long long mid) {\n\t\tll totalNumbersLessThanMid = 0;\n\t\tfor (auto el : a) {\n\t\t\tint cnt = 0;\n\n\t\t\tif (el >= 0) {   //positive number check  number >=0\n\t\t\t\tll s = 0, e = b.size() - 1;  //0 to n-1\n\t\t\t\twhile (s <= e) {\n\t\t\t\t\tll m = (s + e) / 2;\n\t\t\t\t\tif ((ll)((ll)el * (ll)b[m]) <= mid) {\n\t\t\t\t\t\tcnt = m + 1;  //if number is less then mid then we can say all less no are negetive\n\t\t\t\t\t\ts = m + 1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\te = m - 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttotalNumbersLessThanMid += cnt;\n\t\t\t}\n\t\t\telse {   //negetive number search\n\t\t\t\tll s = 0, e = b.size() - 1;\n\t\t\t\twhile (s <= e) {\n\t\t\t\t\tll m = (s + e) / 2;\n\t\t\t\t\tif ((ll)((ll)el * (ll)b[m]) <= mid) {\n\t\t\t\t\t\tcnt = b.size() - m;\n\t\t\t\t\t\te = m - 1;    //check any elemet left from mid-1 if then include\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ts = m + 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttotalNumbersLessThanMid += cnt;\n\t\t\t}\n\t\t}\n\n\t\treturn totalNumbersLessThanMid;\n\t}\n\n\tlong long kthSmallestProduct(vector<int>& nums1, vector<int>& nums2, long long k) {\n\t\tll s = -1e10;\n\t\tll e = 1e10;\n\t\tll ans;\n\t\twhile (s <= e) { // log(2*10^10)\n\t\t\tll mid = ((ll)(s + e)) / 2;\n\t\t\tif (countKaroProducts(nums1, nums2, mid) >= k) {\n\t\t\t\tans = mid;   \n\t\t\t\te = mid - 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\ts = mid + 1;  \n\t\t\t}\n\t\t}\n\t\treturn ans;\n\t}\n};\n```
['Binary Search', 'Binary Search Tree', 'Binary Tree', 'C++']