Ir al contenido (saltar navegación)

Conversor de expresiones

Tiempo máximo: 2,000-3,000 sMemoria máxima: 4096 KiB

Una forma habitual en informática de representar las expresiones aritméticas es utilizar la que se conoce como notacion postfija. En ella los operadores en vez de aparecer entre los dos operandos (como en "3 + 5"), aparecen después de ellos ("3 5 +").

La ventaja de esta notación es que no presenta ambigüedad en el orden de evaluación de los operadores y por lo tanto nunca son necesarios los paréntesis. Además, hacer la evaluación es fácil por medio de una pila: cada vez que nos encontramos un operando se añade en la pila, y cuando se lee un operador se extraen los dos primeros elementos de la pila, se combinan ambos en función del operador, y se apila el resultado obtenido. Cuando el procesado termina, en la pila queda un único elemento que se corresponde con la evaluación de la expresión completa.

Como ejemplo sencillo, podemos evaluar la expresión 7 / (5 - 2) que en notación postfija se escribe como 7 5 2 - /. La evaluación comienza apilando los tres operandos que nos encontramos, el 7, 5 y 2; al encontrarnos con el - se extraen los dos últimos y se restan (5 - 2), el resultado (3) se añade en la pila. Por último, el procesado del / implica extraer el 3, luego el 7, hacer la división y apilar el 2 que es el resultado de la expresión.

Existe una notación distinta que permite evaluar la expresión utilizando una idea similar pero usando una cola en vez de una pila. La expresión anterior se expresa con 2 5 - 7 /. Con una cola, se añade primero el 2 y el 5 en la cola, se extraen para restarlos, y el resultado se inserta de nuevo en la cola; acto seguido se añade el 7 y por último se dividen los dos elementos.

A partir de una expresión que utiliza notación postfija evaluable con una pila, ¿eres capaz de convertirla al formato que permite la evaluación con una cola?

Entrada

La entrada consiste en una sucesión de expresiones en evaluación postfija, cada una en una línea. Los operadores de las expresiones posibles serán los operadores binarios de suma, resta, multiplicación, división y módulo (+, -, *, / y %). Los operandos serán siempre números con un único dígito. No habrá espacios en las expresiones que, además, tendrán longitud menor de 20.000 caracteres.

Salida

Para cada caso de prueba se mostrará la expresión equivalente que permita la evaluación utilizando una cola en lugar de una pila, también sin espacios.

Entrada de ejemplo

752-/
3

Salida de ejemplo

25-7/
3