Ctrl K

Два прототипа и безопасный этаж

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

Бросаем первый прототип со 2-го этажа. Разбился — второй бросаем с 1-го, и всё ясно. Уцелел — бросаем его же с 3-го. В любом случае хватает двух бросков.

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

Первый прототип бросаем с 4-го, затем с 7-го, 9-го и 10-го этажа. Как только он разбился, второй проходит этажи между последним удачным и разбившим подряд снизу вверх. Худший случай — 4 броска, а за 3 броска больше 6 этажей не проверить.

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

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