Утренняя пробежка
Вы решили задачу. Теперь можно сравнить подходы.
Первый день уже считается; затем моделируем ежедневный рост.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Точные рациональные числа
Рациональное представление десятичного ввода даёт точное сравнение, но числители и знаменатели растут.
from fractions import Fraction
x = Fraction(input())
y = Fraction(input())
day = 1
while x < y:
x *= Fraction(11, 10)
day += 1
print(day)
Время: O(d) операций над растущими целыми числами. Память: O(d + B) бит, B — размер исходных чисел.
Другой способ: Цикл с Decimal
Десятичный множитель устраняет типичные двоичные погрешности около 10% на учебных данных. Decimal использует конечную точность контекста.
from decimal import Decimal
x = Decimal(input())
y = Decimal(input())
day = 1
while x < y:
x *= Decimal("1.1")
day += 1
print(day)
Время: O(d) десятичных умножений, d — число дней. Память: O(1) десятичных чисел при фиксированной точности.
На что обратить внимание
- Если x уже не меньше y, ответ 1. Предполагается положительный начальный пробег.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.