Zadanie : onp-1c
Zadanie

Dla przetwarzania przez komputer wygodnym sposobem zapisu wyrażeń arytmetycznych jest tzw. odwrotna notacja polska (ONP). Zapis w ONP wyrażenia W nazywamy postacią ONP i oznaczamy ją ONP(W).

W ONP operator (dodawania, odejmowania, mnożenia, dzielenia) umieszczamy za jego argumentami, np. 2+5 zapisujemy jako 2 5 +. Dokładniej, postać ONP dla wyrażenia definiujemy rekurencyjnie:

ONP(w)
1. Jeżeli w jest liczbą, to jego postać ONP jest równa w.
2. Jeżeli w ma postać w1 op w2, gdzie op jest operatorem działania,
   a w1 i w2 wyrażeniami, to ONP(w) jest równe ONP(w1) ONP(w2) op.

Przykład

W = W1 op W2 	W1 	W2 	op 	ONP(W)
----------------------------------------------
1 + 2 		1 	2 	+ 	1 2 +
5 – 7 		5 	7 	– 	5 7 –
3 * ( 5 – 7 ) 	3 	5 – 7 	*	3 5 7 - *

Poniżej zapisano pseudokod algorytmu obliczającego beznawiasowy zapis ONP wyrażenia matematycznego:

DANE:
    s — wyrażenie matematyczne,
WYNIK:
    wartość ONP(s)

Algorytm:
1. Dla wszystkich znaków z w wyrażeniu s:
   a) jeżeli z jest liczbą, to wypisz go na wyjście
   b) jeżeli z jest nawiasem otwierającym, to odłóż go na stos
   c) jeżeli z jest nawiasem zamykającym, to:
      - zdejmij i wypisz ze stosu wszystkie znaki do nawiasu otwierającego,
        przy czym nawiasu otwierającego nie wypisuj na wyjście
   d) jeżeli z jest działaniem, to:
      - dopóki na stosie jest działanie o priorytecie wyższym lub równym, to zdejmij je i wypisz na wyjście
      - odłóż działanie z na stos
2. Zdejmij i wypisz wszystkie znaki ze stosu

Napisz program, który wyznaczy notację beznawiasową wyrażenia.

Wejście

Pierwszy wiersz wejścia zawiera ciąg znaków o długości nie większej niż 50 znaków, składający się z symboli działań +, -, *. /, nawiasów (, ) oraz liter oznaczających niewiadome.

Wyjście

Wyznaczony zapis ONP wyrażenia matematycznego.

Przykład

Dla danych podanych na wejściu:

(a/b-c)/(a*b-c)

Poprawną odpowiedzią jest wyjście:

ab/c-ab*c-/

Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5

Opcje zadania:

Biblioteki         : iostream iomanip cmath string 
Limit czasu        : 0.1 s
Limit pamięci      : 32 MB
Słowa niedozwolone :