#P1690. (Your)((Term)((Project)))

(Your)((Term)((Project)))

题目描述

你在个人电脑上输入了学期项目报告。报告中有几个一行的算术表达式。这些表达式中原本没有多余的括号(省略一对多余的匹配括号不会改变表达式的值)。在你不在的时候,你的弟弟在你的报告中的表达式里插入了一些多余的匹配括号。假设这些表达式在语法上仍然正确,并且计算结果与原来的值(插入多余括号之前的值)相同。为了将你的报告恢复到原来的形式,你需要编写一个程序来去掉所有多余的括号。

为了简化问题,考虑以下简化假设:

  • 输入文件包含若干个表达式,每个表达式独占一行。
  • 表达式中的变量仅为单个大写字母。
  • 表达式中的运算符仅为二元运算符“+”和二元运算符“-”。

请注意,唯一允许的变换是去掉多余的括号,不允许进行代数化简。

输入格式

输入由若干个测试用例组成。文件的第一行包含一个整数 M,表示测试用例的数量(1 <= M <= 10)。接下来的 M 行,每行恰好是一个正确的表达式。每行中可能会有任意数量的空白字符。每行的长度(包括空白字符)最多为 255 个字符。

输出格式

每个测试用例的输出是去掉多余括号后的相同表达式。请注意,输入表达式和其对应的输出中操作数的顺序应该相同。每个输出表达式必须独占一行。输出表达式中应省略空白字符。

输入数据示例 1

3
(A-B + C) - (A+(B - C)) - (C-(D- E) )
  ((A)-( (B)))
A-(B+C)

输出数据示例 1

A-B+C-(A+B-C)-(C-(D-E))
A-B
A-(B+C)

题目来源

德黑兰 1999 年竞赛题