Ctrl K

Самые лёгкие пары

Средняя
Даны два списка left и right, оба отсортированы по неубыванию, и число k. Пара — это один элемент из left и один из right; элементы на разных позициях дают разные пары, даже если значения совпадают. Упорядочим все пары по сумме, а пары с равной суммой — по числу из left (меньшее первым). Верните первые k пар в этом порядке, каждую как [число из left, число из right]. Всех пар может быть до 10¹⁰, так что перебрать их не получится.
Пример 1
left=[1, 4, 9], right=[2, 3], k=4 → [[1, 2], [1, 3], [4, 2], [4, 3]]

Суммы пар: 1+2=3, 1+3=4, 4+2=6, 4+3=7, 9+2=11, 9+3=12. Берём четыре самые лёгкие.

Пример 2
left=[1, 2], right=[2, 3], k=3 → [[1, 2], [1, 3], [2, 2]]

У пар [1, 3] и [2, 2] сумма одинаковая (4), поэтому первой идёт пара с меньшим числом из left.

Пример 3
left=[-2, -2], right=[5], k=2 → [[-2, 5], [-2, 5]]

Одинаковые числа на разных позициях дают разные пары.

Ограничения
  • 1 ≤ len(left), len(right) ≤ 10⁵
  • -10⁹ ≤ left[i], right[i] ≤ 10⁹
  • Оба списка отсортированы по неубыванию
  • 1 ≤ k ≤ 10⁴, k ≤ len(left) · len(right)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиK-й результат сверху СредняяСтудии для записи СредняяСамые частые значения СредняяK-е по величине в упорядоченной таблице СредняяКратчайший путь катящегося шарика Средняя
загружаем Python…
Вход
left=[1, 4, 9], right=[2, 3], k=4
Ожидается
[[1, 2], [1, 3], [4, 2], [4, 3]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 84 теста на сервере, включая скрытые.