Два повода остановиться
2000 мс · 256 МБ · всё или ничего
Число на каждом шаге умножается на . Сколько шагов пройдёт, прежде чем оно станет строго больше ?
Разрешено сделать не больше шагов. Если за шагов превысить не удалось, выведите .
Формат ввода
Одна строка: от до , от до , от до , от до .
Формат вывода
Одно число: количество шагов или .
Примеры
ввод
1 2 10 100
вывод
4
Примечание
Два условия выхода сразу — while (steps < k && a <= s). Порядок в && здесь не важен, но привычка ставить дешёвую проверку первой полезна.
Главная ловушка — в самом умножении. Писать if (a * m > s) нельзя: при больших a произведение переполнится ещё до сравнения. Сравнивайте до умножения: if (a > s / m).
Войдите, чтобы отправлять решения.