МКАД
Координата на кольце — остаток полного перемещения при делении на длину дороги.
Как к ней подойти
Увидите, как целочисленные операции и вычисления с дробями помогают обойтись без лишних шагов.
Операции // и % помогают разделить число на целую часть и остаток. Для дробных вычислений следите за точностью и порядком действий: одно и то же число может требовать разного способа обработки.
За t часов перемещение равно v·t. В Python остаток при делении на положительное 109 всегда лежит от 0 до 108, даже при отрицательной скорости.
Проверьте перед запуском
- Обычное деление / даёт вещественное число.
- Для отрицательной скорости нельзя заменять // на int(distance / 109): округление будет другим.
- Отметка 109 совпадает с отметкой 0.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Остаток по модулю 109
За t часов перемещение равно v·t. В Python остаток при делении на положительное 109 всегда лежит от 0 до 108, даже при отрицательной скорости.
v = int(input())
t = int(input())
print(v * t % 109)
Время: O(1) арифметических операций. Память: O(1) числовых переменных.
Другой способ: Вычитание полных оборотов
Целочисленное деление // округляет вниз. Если вычесть это количество полных оборотов, оставшаяся координата окажется в диапазоне 0…108 и при движении назад.
v = int(input())
t = int(input())
distance = v * t
turns = distance // 109
print(distance - turns * 109)
Время: O(1) арифметических операций. Память: O(1) числовых переменных.