Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Дробная арифметика

Time limit:1 sec.
Memory limit: 262144 KByte

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

  • знак числа (пишется только в том случае, если при его отсутствии получится неправильное число),
  • целая часть числа (если она равна нулю, то не пишется, но только в том случае, если присутствуют числитель и знаменатель),
  • пробел (не пишется, если целая либо дробная часть отсутствует),
  • числитель (если не равен нулю),
  • знак “/” (пишется только при наличии числителя),
  • знаменатель (не пишется, если отсутствует числитель),
  • знаменатель не может быть равен нулю.

Примеры представления дробных чисел: “-7 3/4”, “8 1/2”, “-7/11”, “0”, “11”.



Ограничения

Все ограничения применимы как для входных, так и для выходных данных. Знак дроби: если дробь положительная, знак не пишется; если дробь отрицательная, знак “-” должен присутствовать. Целая часть и числитель могут иметь значения в диапазоне от 0 до 30000, знаменатель может иметь значения от 1 до 30000. Знаком операции может быть один из следующих четырёх символов: “+” (сложение), “-” (вычитание), “*” (умножение), “/” (деление). Выражение всегда корректно, то есть второй операнд в операции деления не может быть нулём.

Исходные данные

Первая строка – дробь (первый операнд);
Вторая строка – знак операции;
Третья строка – дробь (второй операнд).
Обе дроби могут быть сократимыми. Числитель всегда меньше знаменателя.

Результат

Единственная строка, содержащая несократимую правильную дробь (результат) в вышеописанном формате.

Пример

Исходные данныеРезультат
-3 1/6
+
2/4
-2 2/3
© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.