50 баллов C++ Лягушка Имя входного файла: Имя выходного файла: Ограничение по...

+688 голосов
2.3m просмотров

50 баллов C++ Лягушка Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Ваня наблюдает за лягушкой. Изначально она сидит в точке 0 числовой прямой. Каждую секунду она прыгает на 1 вправо, пока не достигнет точки K. Затем она начинает каждую секунду прыгать на 1 влево, пока не вернется в точку 0, затем — опять вправо и т.д. Требуется определить, где окажется лягушка через T секунд. Формат входных данных Вводятся два натуральных числа K и T (1 ≤ K, T ≤ 109 ). Формат выходных данных Выведи одно число — координату лягушки на прямой в момент времени T. standard input 5 8 standard output 2


Информатика | 2.3m просмотров
Дан 1 ответ
+157 голосов

#include

using namespace std;

int main()

{

int k,t,f;

cin>>k>>t;

if (((t /k) % 2)==0)

f=t % k;

else

f=k -(t % k) ;

cout<<f;</p>

return 0;

}

Пояснения:

С помощью t/k узнаём, какой по номеру обход делает лягушка.

На нечетных обходах лягушка находится в точке, координата которой равна разности максимальной координаты и остатка от деления времени на максимальную координату.

На четных обходах лягушка находиться в точке, координата которой равна остатку от деления времени на максимальрую координату.

То есть чётность/нечётность обхода показывает нам направление, в котором двигается лягушка.

P. S.

Можешь на линейке в числа пальцем потыкать - работает, сам проверял :)

(1.1k баллов)