Ctrl K

Испытания прототипов на падение

Сложная
Лаборатория проверяет, с какой высоты выдерживает падение новый гаджет. У вас prototypes одинаковых прототипов и здание с этажами от 1 до floors. Существует порог f (0 ≤ f ≤ floors): прототип, сброшенный с этажа выше f, разбивается, а с этажа f или ниже — остаётся целым. Порог заранее неизвестен. За один бросок вы сбрасываете целый прототип с любого этажа от 1 до floors. Разбившийся прототип больше не использовать, уцелевший можно бросать снова. Верните наименьшее число бросков, которого гарантированно хватит, чтобы точно определить f при любом его значении.
Пример 1
prototypes=1, floors=3 → 3

С одним прототипом рисковать нельзя: бросаем с 1-го, 2-го, 3-го этажа по очереди. В худшем случае нужно 3 броска.

Пример 2
prototypes=2, floors=10 → 4

Первый бросок — с 4-го этажа. Если разбился, второй прототип проверяет этажи 1–3 по очереди. Если нет — следующий бросок с 7-го, потом с 9-го. В любом исходе хватает 4 бросков.

Пример 3
prototypes=3, floors=1 → 1
Ограничения
  • 1 ≤ prototypes ≤ 100
  • 1 ≤ floors ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисла с рабочих клавиш СложнаяСколько раз написана единица СложнаяКоробка в коробке СложнаяСамый тяжёлый день чтения СложнаяДегустаторы и испорченная бочка Сложная
загружаем Python…
Вход
prototypes=1, floors=3
Ожидается
3

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