[C++] Binary Search Solution !!!
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```\nclass Solution {\npublic:\n    using ll = long long;\n    long long kthSmallestProduct(vector<int>& A, vector<int>& B, long long k) {\n        ll l = -1e10, r = 1e10;\n        auto count_le = [&](ll x){\n            ll total = 0;\n            for(auto a : A) {\n                if(a > 0) {\n                    int l = 0, r = B.size()-1;\n                    while(l < r) {\n                        int m = l + (r-l+1)/2;\n                        if((ll)a*B[m] > x) r = m-1;\n                        else l = m;\n                    }\n                    total += (ll)a*B[l] <= x ? l+1 : 0;\n                } else {\n                    int l = 0, r = B.size()-1;\n                    while(l < r) {\n                        int m = l + (r-l)/2;\n                        if((ll)a*B[m] > x) l = m+1;\n                        else r = m;\n                    }\n                    total += (ll)a*B[l] <= x ? B.size() -l : 0;\n                }\n            }\n            return total;\n        };\n\n        while(l < r) {\n            ll x = l + (r-l)/2;\n            if(count_le(x) < k) l = x+1;\n            else r = x;\n        }\n        return l;\n    }\n};\n```
['C++']