Сдать решение b-улиточные бега
имя входного файла: snail.in или стандартный поток ввода
имя выходного файла: snail.out или стандартный поток вывода
ограничение времени: 1 с
ограничение памяти: 256m
улиточные бега
каждые 100 лет в стране улиток проводятся улиточные бега на дистанции l сантиметров. это станет для вас неожиданностью, но в этом столетии они проводятся именно сегодня!

в этом году организаторы приняли решение провести бега на новой трассе - прямоугольнике размера a × b сантиметров. согласно правилам, участники начнут бежать из нижнего левого угла прямоугольника против часовой стрелки в соответствии со схемой ниже:

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

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

формат входных данных
вводятся три целых числа a, b, l (2 ≤ a, b ≤ 106, 1 ≤ l ≤ 1018) - длина и ширина прямоугольника и длина пути соответственно. гарантируется, что улитка не останавливается в углу прямоугольника.

формат результата
выведите top, если улитка остановится на верхней стороне прямоугольника, bottom - на нижней, left - на левой, right - на правой стороне прямоугольника.

примеры
входные данные
2
4
11
результат работы
left
входные данные
2
4
13
результат работы
bottom
примечания
обратите внимание, что в данной величина l превышает максимально возможное значение 32-битных типов данных. для работы с большими целыми числами в языке pascal предусмотрен тип int64, а в c++ - тип long long.
на любом языке программирования .

dasa2208 dasa2208    1   21.10.2019 13:22    9

Ответы
Nathoe789 Nathoe789  10.10.2020 08:23

program abc;

var a,b,l:int64;

begin

 assign(input,'snail.in');

 assign(output,'snail.out');

 readLn(a,b,l);

 if (l div (a+b)) mod 2 = 0 then if (l mod (a+b))-a<0 then writeLn('BOTTOM') else writeLn('RIGHT')

 else if (l mod (a+b))-a<0 then writeLn('TOP') else writeLn('LEFT')

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика