Ваня наблюдает за лягушкой. Изначально она сидит в точке 0 числовой прямой. Каждую секунду она прыгает на 1 вправо, пока не достигнет точки K. Затем она начинает каждую секунду прыгать на 1 влево, пока не вернется в точку 0, затем — опять вправо и т. д. Требуется определить, где окажется лягушка через T секунд.
Для решения этой задачи можно воспользоваться формулами остаточного деления.
Предположим, что K > 0 (лягушка прыгает вправо) и T > 0 (время, через которое нужно определить местоположение лягушки).
После t секунд лягушка окажется в позиции X:
X = K (T // (2K)) + min(T % (2K), K) - max(0, T % (2K) - K)
где // обозначает целочисленное деление (без остатка).
Например, если K = 5 и T = 7, то лягушка окажется в позиции 3 через 7 секунд.
Если K < 0 (лягушка прыгает влево), то формула будет такой:
X = K ((T+K) // (2K)) + min(T % (2K), -K) - max(0, T % (2K) - K)
Если T < 0 (лягушка прыгает в обратном направлении), знак T меняется на противоположный и используется формула выше.
Таким образом, можно легко определить, где окажется лягушка через T секунд.