Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

WIPING2B - Liczniki i mianowniki

Zadanie eliminacyjne w konkursie WIPING2 organizowanym przez
Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie

Liczniki i mianowniki

Twoim zadaniem jest stworzenie prostego kalkulatora wykonującego cztery podstawowe operacje arytmetyczne na ułamkach.

Twój program otrzyma na wejściu jeden wiersz tekstu o następującej strukturze:

x1 y1 # x2 y2

gdzie:

x1: licznik pierwszego ułamka
y1: mianownik pierwszego ułamka
#:  operator: jeden z +, -, *, /
x2: licznik drugiego ułamka
y2: mianownik drugiego ułamka

Wszystkie dane liczbowe są całkowite i zawarte w przedziale <1..109>, a wszystkie elementy w linii wejściowej rozdzielone są spacjami.

Twoim zadaniem jest wyprowadzenie na wyjście jednego wiersza tekstu zawierającego wynik zaprezentowany w następującej formie

  • znak - (minus) jeśli otrzymany wynik jest mniejszy od zera;
  • jeżeli otrzymany wynik jest ułamkiem niewłaściwym, to przedstawiamy go liczbą będącą całkowitym ilorazem licznika i mianownika i po spacji uzupełniającym ją ułamkiem właściwym w postaci licznik/mianownik, o ile jego licznik jest różny od zera;
  • ułamek właściwy w postaci licznik/mianownik w przeciwnym przypadku.

Sposród wszystkich możliwych form prezentacji ułamka program powinien wybrać tę, która posługuje się możliwie małym (co do wartości bezwzględnej) mianownikiem.

Wejście

  • jeden wiersz tekst o strukturze:

    int int char int int

    gdzie każde z int jest dodatnią liczbą całkowitą, a char jest znakiem operatora arytmetycznego
    (+ - / *)

Wyjście

  • jeden wiersz tekstu o strukturze (nawiasy [] oznaczają elementy opcjonalne):

    [-][int ][int/int]

    przy czym obowiązkowe jest wystąpienie przynajmniej jednego składnika z opisanych w drugiej i trzeciej parze nawiasów.

Przykład

Wejście:

1 2 - 12 4

Wyjście:

-2 1/2

 

Wejście:

1 2 * 1 2

Wyjście:

1/4

Informacje dodatkowe

  • program zostanie uruchomiony 10 razy dla różnych zestawów danych

  • każde poprawne rozwiązanie daje 10% punktacji zadania

  • zadanie ma wartość punktową 4,0

 

Dodane przez:Sławomir Wernikowski
Data dodania:2014-01-16
Limit czasu wykonania programu:0.5s
Limit długości kodu źródłowego2000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:C CSHARP C++ 4.3.2 CPP C99 JAVA PAS-GPC PAS-FPC PERL PERL6 PHP PYTHON PYTHON3 PY_NBC RUBY
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.