Ctrl K

Потерянные броски кубика

Средняя
Игроки бросили обычный шестигранный кубик (грани от 1 до 6) len(known) + lost раз. Результаты lost бросков потерялись, остальные записаны в массиве known. Зато известно, что среднее арифметическое всех бросков — ровно целое число average. Восстановите потерянные броски: верните список из lost значений от 1 до 6, с которыми среднее всех бросков равно average. Значения должны быть распределены **как можно ровнее** — любые два из них отличаются не больше чем на 1. Порядок значений может быть любым. Если подходящих значений не существует, верните пустой список.
Пример 1
known=[6, 1, 2], average=3, lost=2 → [3, 3]

Всего 5 бросков со средним 3 — сумма 15. Известные дают 9, значит, на два потерянных приходится 6: ровнее всего 3 и 3.

Пример 2
known=[1, 1], average=2, lost=3 → [3, 3, 2]

Сумма всех пяти бросков — 10, на три потерянных приходится 8: ровнее всего 3, 3 и 2 (в любом порядке).

Пример 3
known=[6, 6, 6], average=2, lost=1 → []

Сумма должна быть 8, а известные уже дают 18 — восстановить нельзя, ответ пустой.

Ограничения
  • 1 ≤ len(known) ≤ 10⁵
  • 1 ≤ lost ≤ 10⁵
  • 1 ≤ known[i] ≤ 6
  • 1 ≤ average ≤ 6
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько тасовать, чтобы вернуть колоду СредняяПоследний в кругу СредняяВершина пирамиды из цифр СредняяВолны накопленных сумм СредняяСколько раз упомянули каждого Средняя
загружаем Python…
Вход
known=[6, 1, 2], average=3, lost=2
Ожидается
[3, 3]

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