#colopl2018finalb. [colopl2018_final_b]異世界数式

[colopl2018_final_b]異世界数式

问题文

你正在玩一个经营店铺的模拟游戏,但这个异世界中,数学表达式中的四则运算符号与普通世界中的不一样。

在通常的数学表达式中,四则运算符号会位于数字之间,比如 1+2+310/5,但在这个世界中,四则运算使用函数调用的形式来表示。例如,前面的例子对应的数学表达式是 +(1,2,3)/(10,5)

更准确地说,在这个世界中,数学表达式要么是简单的数字序列,要么是直接跟在运算符 (+, -, *, / 中的任何一个) 后面的括号 ((),括号中用逗号 (,) 分隔的一系列数学表达式,然后闭合括号 ())。其中,括号中的表达式数量对于加法和乘法 (+, *) 可以是任意多个,但对于减法和除法 (-, /) 必须是两个。

例如,0123+(10,*(20,30),-(40,50))*(5) 都是正确的数学表达式。而 +((1))-(5) 不是正确的数学表达式。

给定一个表示异世界数学表达式的字符串 SS,请编写一个程序将其转换为普通的中置记法数学表达式。转换后的表达式需要满足以下条件:

  • 转换后的表达式中的括号必须严格对应于原来的括号位置。例如,+(1,-(2,3)) 应该转换为 (1+(2-3))*(5) 应该转换为 (5)
  • 输入中出现的数字必须按原样输出,包括开头的 0 等。
  • 不得插入任何多余的空格。例如,+(1,2) 不应该转换为 (1 + 2),而应该是 (1+2)

具体的条件要求,请参考输入输出示例。

制约条件

  • 1S1051 \leq |S| \leq 10^5
  • 字符串 SS 是一个有效的异世界数学表达式,只包含运算符 (+, -, *, /)、括号 ((, ))、逗号 (,) 和数字。

输入

输入以以下格式从标准输入中给出。

SS

输出

输出转换后的数学表达式,输出到一行中。


输入例子 1

*(*(0,5),+(14,3),-(5,77))

输出例子 1

((0*5)*(14+3)*(5-77))

输入例子 2

+(1,+(+(2,3)),+(4,+(5)))

输出例子 2

(1+((2+3))+(4+(5)))

请注意括号的位置和数量。


输入例子 3

9876

输出例子 3

9876

输入例子 4

+(123456789,12345678901234567890,0,00,000,0123456789)

输出例子 4

(123456789+12345678901234567890+0+00+000+0123456789)

数学表达式中的数没有明确的上限。还需要注意,在表示数字时,如果开头是 0 这样的形式也是正确的,且需要按原样输出。


输入例子 5

*(5)

输出例子 5

(5)