#P1400. Complicated Expressions

Complicated Expressions

题目描述

ACM最重要的活动之一是GSM网络。作为移动电话运营商,ACM必须建立自己的发射站。计算电磁波的精确行为非常重要。然而,预测电磁场是一项非常复杂的任务,描述它们的公式非常冗长且难以阅读。例如,以下是描述电气工程基本定律的麦克斯韦方程组(Maxwell's Equations)。

ACM设计了自己的计算机系统,可以进行一些场计算并以数学表达式的形式生成结果。然而,由于表达式是在多个步骤中生成的,表达式中总是存在一些不必要的括号。你的任务是处理这些部分结果,并通过删除所有不必要的括号使它们变得“美观”。

输入格式

输入的第一行是一个正整数TT,表示表达式的数量。每个表达式由一行组成,仅包含小写字母、运算符(++, -, *, //)和括号((()))。字母是可以取任意值的变量,运算符和括号具有其通常的含义。乘法和除法的优先级高于加法和减法。相同优先级的操作从左到右计算(运算符是左结合的)。表达式中没有空格。每个输入行的长度不超过250个字符。

输出格式

对于每个表达式,输出一行。该行必须包含删除了不必要括号后的相同表达式。你必须在不改变表达式语义的情况下删除尽可能多的括号。当且仅当满足以下条件之一时,表达式的语义被视为相同:

  1. 操作顺序保持不变。例如,(a+b)+c(a+b)+ca+b+ca+b+c 是相同的,a+(b/c)a+(b/c)a+b/ca+b/c 也是相同的。
  2. 某些操作的顺序交换,但结果在加法和乘法的结合律下保持不变。例如,a+(b+c)a+(b+c)(a+b)+c(a+b)+c 是相同的。我们还可以将加法与减法结合,乘法与除法结合,前提是减法或除法是第二个操作。例如,a+(bc)a+(b-c)a+bca+b-c 是相同的。

不允许使用其他定律,即不能交换左右操作数,也不能将a(bc)a-(b-c)替换为ab+ca-b+c

示例输入

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