Калькулятор дробей

Просмотр в формате PDF

Submit solution


Очки: 170
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

Школьный калькулятор умеет работать с обыкновенными дробями: он последовательно складывает и вычитает их, а затем автоматически приводит ответ к несократимому виду.

Каждая дробь записывается в формате p/q, где p — целое число, а q — положительное целое число.

Дано выражение из n дробей, между которыми стоят операции + и -. Необходимо вычислить результат работы калькулятора и вывести его в виде несократимой дроби.

Правила записи ответа:

  • результат должен быть выведен в формате p/q, где q > 0;
  • если результат равен нулю, нужно вывести 0/1;
  • в противном случае дробь должна быть несократимой, то есть gcd(|p|, q) = 1, а знак должен находиться в числителе.

Входные данные

В первой строке задано целое число n — количество дробей в выражении.

Во второй строке задано выражение в виде
f_1 op_1 f_2 op_2 f_3 ... op_{n-1} f_n

где:

  • f_i — дробь в формате p_i/q_i;
  • op_i — символ + или -.

Между всеми соседними токенами стоит ровно один пробел. Если n = 1, то во второй строке записана только одна дробь.

Выходные данные

Выведите одну дробь в формате p/q — значение выражения, приведённое к несократимому виду.

Гарантируется, что числитель и знаменатель промежуточных результатов помещаются в __int128 в C++ и в стандартный тип int в Python.

Ограничения

  • 1 <= n <= 10^5
  • -10^9 <= p_i <= 10^9
  • 1 <= q_i <= 10^9
  • ввод осуществляется через стандартный ввод
  • вывод осуществляется через стандартный вывод

Примеры

Пример 1

Входные данные

1
1/2

Выходные данные

1/2
Пример 2

Входные данные

2
1/2 + 1/3

Выходные данные

5/6

Комментарии

Еще нет ни одного комментария.