#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("inline")
#include<bits/stdc++.h>
using namespace std;
template < class T> long long counterProdIsLT( int As, T A[ ] , int Bs, T B[ ] , T val) {
int i;
int j;
int ma = 0 ;
int za = 0 ;
int pa = 0 ;
int mb = 0 ;
int zb = 0 ;
int pb = 0 ;
long long res = 0 ;
i = 0 ;
while ( i < As && A[ i] < 0 ) {
i++ ;
}
ma = i;
while ( i < As && A[ i] == 0 ) {
i++ ;
}
za = i - ma;
pa = As - i;
i = 0 ;
while ( i < Bs && B[ i] < 0 ) {
i++ ;
}
mb = i;
while ( i < Bs && B[ i] == 0 ) {
i++ ;
}
zb = i - mb;
pb = Bs - i;
if ( val < 0 ) {
j = 0 ;
for ( i= ( 0 ) ; i< ( pa) ; i++ ) {
while ( j < mb && A[ As- pa+ i] * B[ j] < val) {
j++ ;
}
res + = j;
}
j = 0 ;
for ( i= ( 0 ) ; i< ( pb) ; i++ ) {
while ( j < ma && B[ Bs- pb+ i] * A[ j] < val) {
j++ ;
}
res + = j;
}
}
else if ( val == 0 ) {
res = ( long long ) ma * pb + ( long long ) pa * mb;
}
else {
res = ( long long ) As * Bs - ( long long ) pa * pb - ( long long ) ma * mb;
j = pb;
for ( i= ( 0 ) ; i< ( pa) ; i++ ) {
while ( j && A[ As- pa+ i] * B[ Bs- pb+ j- 1 ] >= val) {
j-- ;
}
if ( j== 0 ) {
break ;
}
res + = j;
}
j = mb;
for ( i= ( 0 ) ; i< ( ma) ; i++ ) {
while ( j && A[ ma- 1 - i] * B[ mb- j] >= val) {
j-- ;
}
if ( j== 0 ) {
break ;
}
res + = j;
}
}
return res;
}
template < class T, class S> inline int vec2arr( vector< T> & v, S arr[ ] ) {
int i;
int N = v.size ( ) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
arr[ i] = v[ i] ;
}
return N;
}
template < class T, class S1, class S2> inline int vec2arr( vector< vector< T>> & v, S1 arr1[ ] , S2 arr2[ ] ) {
int i;
int N = v.size ( ) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
arr1[ i] = v[ i] [ 0 ] ;
arr2[ i] = v[ i] [ 1 ] ;
}
return N;
}
template < class T, class S1, class S2, class S3> inline int vec2arr( vector< vector< T>> & v, S1 arr1[ ] , S2 arr2[ ] , S3 arr3[ ] ) {
int i;
int N = v.size ( ) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
arr1[ i] = v[ i] [ 0 ] ;
arr2[ i] = v[ i] [ 1 ] ;
arr3[ i] = v[ i] [ 2 ] ;
}
return N;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int As;
int Bs;
long long A[ 100000 ] ;
long long B[ 100000 ] ;
class Solution{
public :
long long kthSmallestProduct( vector< int > & nums1, vector< int > & nums2, long long K) {
dummy_main( ) ;
As = vec2arr( nums1, A) ;
Bs = vec2arr( nums2, B) ;
long long Lj4PdHRW;
long long KL2GvlyY;
long long Q5VJL1cS;
Lj4PdHRW = - 10000000000LL;
KL2GvlyY = 10000000000LL;
while ( Lj4PdHRW < KL2GvlyY) {
if ( ( Lj4PdHRW + KL2GvlyY) % 2 == 0 ) {
Q5VJL1cS = ( Lj4PdHRW + KL2GvlyY) / 2 ;
}
else {
Q5VJL1cS = ( Lj4PdHRW + KL2GvlyY + 1 ) / 2 ;
}
if ( counterProdIsLT( As, A, Bs, B, Q5VJL1cS) < K) {
Lj4PdHRW = Q5VJL1cS;
}
else {
KL2GvlyY = Q5VJL1cS - 1 ;
}
}
return KL2GvlyY;
}
}
;
// cLay version 20210926-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int As, Bs; ll A[1d5], B[];
//
// class Solution {
// public:
// ll kthSmallestProduct(vector<int>& nums1, vector<int>& nums2, ll K) {
// dummy_main();
// As = vec2arr(nums1, A);
// Bs = vec2arr(nums2, B);
// return bsearch_max[ll,x,-1d10,1d10](counterProdIsLT(As, A, Bs, B, x) < K);
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJpbmxpbmUiKQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZTxjbGFzcyBUPiBsb25nIGxvbmcgY291bnRlclByb2RJc0xUKGludCBBcywgVCBBW10sIGludCBCcywgVCBCW10sIFQgdmFsKXsKICBpbnQgaTsKICBpbnQgajsKICBpbnQgbWEgPSAwOwogIGludCB6YSA9IDA7CiAgaW50IHBhID0gMDsKICBpbnQgbWIgPSAwOwogIGludCB6YiA9IDA7CiAgaW50IHBiID0gMDsKICBsb25nIGxvbmcgcmVzID0gMDsKICBpID0gMDsKICB3aGlsZShpIDwgQXMgJiYgQVtpXSA8IDApewogICAgaSsrOwogIH0KICBtYSA9IGk7CiAgd2hpbGUoaSA8IEFzICYmIEFbaV0gPT0gMCl7CiAgICBpKys7CiAgfQogIHphID0gaSAtIG1hOwogIHBhID0gQXMgLSBpOwogIGkgPSAwOwogIHdoaWxlKGkgPCBCcyAmJiBCW2ldIDwgMCl7CiAgICBpKys7CiAgfQogIG1iID0gaTsKICB3aGlsZShpIDwgQnMgJiYgQltpXSA9PSAwKXsKICAgIGkrKzsKICB9CiAgemIgPSBpIC0gbWI7CiAgcGIgPSBCcyAtIGk7CiAgaWYodmFsIDwgMCl7CiAgICBqID0gMDsKICAgIGZvcihpPSgwKTtpPChwYSk7aSsrKXsKICAgICAgd2hpbGUoaiA8IG1iICYmIEFbQXMtcGEraV0gKiBCW2pdIDwgdmFsKXsKICAgICAgICBqKys7CiAgICAgIH0KICAgICAgcmVzICs9IGo7CiAgICB9CiAgICBqID0gMDsKICAgIGZvcihpPSgwKTtpPChwYik7aSsrKXsKICAgICAgd2hpbGUoaiA8IG1hICYmIEJbQnMtcGIraV0gKiBBW2pdIDwgdmFsKXsKICAgICAgICBqKys7CiAgICAgIH0KICAgICAgcmVzICs9IGo7CiAgICB9CiAgfQogIGVsc2UgaWYodmFsID09IDApewogICAgcmVzID0gKGxvbmcgbG9uZykgbWEgKiBwYiArIChsb25nIGxvbmcpIHBhICogbWI7CiAgfQogIGVsc2V7CiAgICByZXMgPSAobG9uZyBsb25nKSBBcyAqIEJzIC0gKGxvbmcgbG9uZykgcGEgKiBwYiAtIChsb25nIGxvbmcpIG1hICogbWI7CiAgICBqID0gcGI7CiAgICBmb3IoaT0oMCk7aTwocGEpO2krKyl7CiAgICAgIHdoaWxlKGogJiYgQVtBcy1wYStpXSAqIEJbQnMtcGIrai0xXSA+PSB2YWwpewogICAgICAgIGotLTsKICAgICAgfQogICAgICBpZihqPT0wKXsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICByZXMgKz0gajsKICAgIH0KICAgIGogPSBtYjsKICAgIGZvcihpPSgwKTtpPChtYSk7aSsrKXsKICAgICAgd2hpbGUoaiAmJiBBW21hLTEtaV0gKiBCW21iLWpdID49IHZhbCl7CiAgICAgICAgai0tOwogICAgICB9CiAgICAgIGlmKGo9PTApewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHJlcyArPSBqOwogICAgfQogIH0KICByZXR1cm4gcmVzOwp9CnRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFM+IGlubGluZSBpbnQgdmVjMmFycih2ZWN0b3I8VD4gJnYsIFMgYXJyW10pewogIGludCBpOwogIGludCBOID0gdi5zaXplKCk7CiAgZm9yKGk9KDApO2k8KE4pO2krKyl7CiAgICBhcnJbaV0gPSB2W2ldOwogIH0KICByZXR1cm4gTjsKfQp0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBTMSwgY2xhc3MgUzI+IGlubGluZSBpbnQgdmVjMmFycih2ZWN0b3I8dmVjdG9yPFQ+PiAmdiwgUzEgYXJyMVtdLCBTMiBhcnIyW10pewogIGludCBpOwogIGludCBOID0gdi5zaXplKCk7CiAgZm9yKGk9KDApO2k8KE4pO2krKyl7CiAgICBhcnIxW2ldID0gdltpXVswXTsKICAgIGFycjJbaV0gPSB2W2ldWzFdOwogIH0KICByZXR1cm4gTjsKfQp0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBTMSwgY2xhc3MgUzIsIGNsYXNzIFMzPiBpbmxpbmUgaW50IHZlYzJhcnIodmVjdG9yPHZlY3RvcjxUPj4gJnYsIFMxIGFycjFbXSwgUzIgYXJyMltdLCBTMyBhcnIzW10pewogIGludCBpOwogIGludCBOID0gdi5zaXplKCk7CiAgZm9yKGk9KDApO2k8KE4pO2krKyl7CiAgICBhcnIxW2ldID0gdltpXVswXTsKICAgIGFycjJbaV0gPSB2W2ldWzFdOwogICAgYXJyM1tpXSA9IHZbaV1bMl07CiAgfQogIHJldHVybiBOOwp9CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IEFzOwppbnQgQnM7CmxvbmcgbG9uZyBBWzEwMDAwMF07CmxvbmcgbG9uZyBCWzEwMDAwMF07CmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBsb25nIGxvbmcga3RoU21hbGxlc3RQcm9kdWN0KHZlY3RvcjxpbnQ+JiBudW1zMSwgdmVjdG9yPGludD4mIG51bXMyLCBsb25nIGxvbmcgSyl7CiAgICBkdW1teV9tYWluKCk7CiAgICBBcyA9IHZlYzJhcnIobnVtczEsIEEpOwogICAgQnMgPSB2ZWMyYXJyKG51bXMyLCBCKTsKICAgIGxvbmcgbG9uZyBMajRQZEhSVzsKICAgIGxvbmcgbG9uZyBLTDJHdmx5WTsKICAgIGxvbmcgbG9uZyBRNVZKTDFjUzsKICAgIExqNFBkSFJXID0gLTEwMDAwMDAwMDAwTEw7CiAgICBLTDJHdmx5WSA9IDEwMDAwMDAwMDAwTEw7CiAgICB3aGlsZShMajRQZEhSVyA8IEtMMkd2bHlZKXsKICAgICAgaWYoKExqNFBkSFJXICsgS0wyR3ZseVkpJTI9PTApewogICAgICAgIFE1VkpMMWNTID0gKExqNFBkSFJXICsgS0wyR3ZseVkpIC8gMjsKICAgICAgfQogICAgICBlbHNlewogICAgICAgIFE1VkpMMWNTID0gKExqNFBkSFJXICsgS0wyR3ZseVkgKyAxKSAvIDI7CiAgICAgIH0KICAgICAgaWYoY291bnRlclByb2RJc0xUKEFzLCBBLCBCcywgQiwgUTVWSkwxY1MpIDwgSyl7CiAgICAgICAgTGo0UGRIUlcgPSBRNVZKTDFjUzsKICAgICAgfQogICAgICBlbHNlewogICAgICAgIEtMMkd2bHlZID0gUTVWSkwxY1MgLSAxOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gS0wyR3ZseVk7CiAgfQp9CjsKLy8gY0xheSB2ZXJzaW9uIDIwMjEwOTI2LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gaW50IEFzLCBCczsgbGwgQVsxZDVdLCBCW107Ci8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBsbCBrdGhTbWFsbGVzdFByb2R1Y3QodmVjdG9yPGludD4mIG51bXMxLCB2ZWN0b3I8aW50PiYgbnVtczIsIGxsIEspIHsKLy8gICAgIGR1bW15X21haW4oKTsKLy8gICAgIEFzID0gdmVjMmFycihudW1zMSwgQSk7Ci8vICAgICBCcyA9IHZlYzJhcnIobnVtczIsIEIpOwovLyAgICAgcmV0dXJuIGJzZWFyY2hfbWF4W2xsLHgsLTFkMTAsMWQxMF0oY291bnRlclByb2RJc0xUKEFzLCBBLCBCcywgQiwgeCkgPCBLKTsKLy8gICB9Ci8vIH07Cg==