i = a_len * (k - 1) // (a_len + b_len)
j = k - 1 - i
if j >= b_len:
    j = b_len - 1
i = k - 1 - j
if A[i] <= B[j]:
    if j == 0 or B[j - 1] <= A[i]:
        return A[i]
return kthsmallest(A[i:], B[:j], k - i)
if i == 0 or A[i - 1] <= B[j]:
    return B[j]
return kthsmallest(A[:i], B[j:], k - j)
Поиск k-го наименьшего элемента в объединении отсортированных массивов