#P1400. Complicated Expressions
Complicated Expressions
题目描述
ACM最重要的活动之一是GSM网络。作为移动电话运营商,ACM必须建立自己的发射站。计算电磁波的精确行为非常重要。然而,预测电磁场是一项非常复杂的任务,描述它们的公式非常冗长且难以阅读。例如,以下是描述电气工程基本定律的麦克斯韦方程组(Maxwell's Equations)。
ACM设计了自己的计算机系统,可以进行一些场计算并以数学表达式的形式生成结果。然而,由于表达式是在多个步骤中生成的,表达式中总是存在一些不必要的括号。你的任务是处理这些部分结果,并通过删除所有不必要的括号使它们变得“美观”。
输入格式
输入的第一行是一个正整数,表示表达式的数量。每个表达式由一行组成,仅包含小写字母、运算符(, , , )和括号( 和 )。字母是可以取任意值的变量,运算符和括号具有其通常的含义。乘法和除法的优先级高于加法和减法。相同优先级的操作从左到右计算(运算符是左结合的)。表达式中没有空格。每个输入行的长度不超过250个字符。
输出格式
对于每个表达式,输出一行。该行必须包含删除了不必要括号后的相同表达式。你必须在不改变表达式语义的情况下删除尽可能多的括号。当且仅当满足以下条件之一时,表达式的语义被视为相同:
- 操作顺序保持不变。例如, 和 是相同的, 和 也是相同的。
- 某些操作的顺序交换,但结果在加法和乘法的结合律下保持不变。例如, 和 是相同的。我们还可以将加法与减法结合,乘法与除法结合,前提是减法或除法是第二个操作。例如, 和 是相同的。
不允许使用其他定律,即不能交换左右操作数,也不能将替换为。
示例输入
8
(a+(b*c))
((a+b)*c)
(a*(b*c))
(a*(b/c)*d)
((a/(b/c))/d)
((x))
(a+b)-(c-d)-(e/f)
(a+b)+(c-d)-(e+f)
示例输出
a+b*c
(a+b)*c
a*b*c
a*b/c*d
a/(b/c)/d
x
a+b-(c-d)-e/f
a+b+c-d-(e+f)
题目来源 Central Europe 2000