• Предмет: Информатика
  • Автор: pfuykupidoras
  • Вопрос задан 1 год назад

Сдать решение задачи 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.
На любом языке программирования . СРОЧНО

Ответы

Ответ дал: Aniforka
4

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.


pfuykupidoras: не работает
pfuykupidoras: неожиданный символ
Aniforka: исправил
Aniforka: ну как?
dimabrin: не работает
Aniforka: скопируй нормально, ибо я проверял перед отправкой
Вас заинтересует
5 месяцев назад