#colopl2018finalb. [colopl2018_final_b]異世界数式
[colopl2018_final_b]異世界数式
问题文
你正在玩一个经营店铺的模拟游戏,但这个异世界中,数学表达式中的四则运算符号与普通世界中的不一样。
在通常的数学表达式中,四则运算符号会位于数字之间,比如 1+2+3
或 10/5
,但在这个世界中,四则运算使用函数调用的形式来表示。例如,前面的例子对应的数学表达式是 +(1,2,3)
或 /(10,5)
。
更准确地说,在这个世界中,数学表达式要么是简单的数字序列,要么是直接跟在运算符 (+
, -
, *
, /
中的任何一个) 后面的括号 ((
),括号中用逗号 (,
) 分隔的一系列数学表达式,然后闭合括号 ()
)。其中,括号中的表达式数量对于加法和乘法 (+
, *
) 可以是任意多个,但对于减法和除法 (-
, /
) 必须是两个。
例如,0123
、+(10,*(20,30),-(40,50))
和 *(5)
都是正确的数学表达式。而 +((1))
和 -(5)
不是正确的数学表达式。
给定一个表示异世界数学表达式的字符串 ,请编写一个程序将其转换为普通的中置记法数学表达式。转换后的表达式需要满足以下条件:
- 转换后的表达式中的括号必须严格对应于原来的括号位置。例如,
+(1,-(2,3))
应该转换为(1+(2-3))
,*(5)
应该转换为(5)
。 - 输入中出现的数字必须按原样输出,包括开头的
0
等。 - 不得插入任何多余的空格。例如,
+(1,2)
不应该转换为(1 + 2)
,而应该是(1+2)
。
具体的条件要求,请参考输入输出示例。
制约条件
- 字符串 是一个有效的异世界数学表达式,只包含运算符 (
+
,-
,*
,/
)、括号 ((
,)
)、逗号 (,
) 和数字。
输入
输入以以下格式从标准输入中给出。
输出
输出转换后的数学表达式,输出到一行中。
输入例子 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)