Ctrl K

k-й по дешевизне обед из меню

Сложная
Меню столовой задано матрицей menu: строка — это раздел (супы, горячее, напитки, …), числа в строке — цены блюд раздела, отсортированные по неубыванию. Обед — это ровно одно блюдо из каждого раздела, его цена — сумма цен выбранных блюд. Обеды различаются, если хотя бы в одном разделе выбрано другое блюдо (другая позиция в строке), даже при равных ценах. Упорядочьте все возможные обеды по цене и верните цену k-го самого дешёвого (нумерация с единицы).
Пример 1
menu=[[2, 5, 6], [1, 3, 4]], k=3 → 6

Самые дешёвые обеды: 2+1=3, 2+3=5, 2+4=6, 5+1=6, 6+1=7, … Третий по дешевизне стоит 6.

Пример 2
menu=[[7], [3], [10]], k=1 → 20

В каждой строке одно блюдо — обед один, 7+3+10=20.

Пример 3
menu=[[1, 1, 8], [2, 6, 9], [1, 4, 4]], k=5 → 7

Самые дешёвые обеды: 4, 4, 7, 7, 7, … — пятый стоит 7. Одинаковые цены у разных обедов считаются отдельно.

Ограничения
  • 1 ≤ len(menu) ≤ 40
  • Все строки одной длины n, 1 ≤ n ≤ 40
  • 1 ≤ menu[i][j] ≤ 5000
  • Каждая строка menu[i] отсортирована по неубыванию
  • 1 ≤ k ≤ min(200, nᵐ), где m = len(menu)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПереправа в прилив СложнаяK-е по величине в упорядоченной таблице СредняяМаршрут с самым высоким узким местом СредняяСамые тусклые ряды ЛёгкаяСамый пологий маршрут Средняя
загружаем Python…
Вход
menu=[[2, 5, 6], [1, 3, 4]], k=3
Ожидается
6

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