#P1100. Dreisam Equations
Dreisam Equations
描述
在对遥远且可能未开化星球上的一片名为德雷萨姆斯图(Dreisamwuste)的沙漠进行考古挖掘时,发现了一些纸张,上面有神秘的符号。经过长时间的研究,项目科学家们得出结论,这些符号可能是方程式的一部分。如果这是真的,那就证明德雷萨姆斯图在很久很久以前就已经有了文明。
然而,问题在于这些纸张上发现的唯一符号是数字、括号和等号。有确凿的证据表明,生活在德雷萨姆斯图的人只知道三种算术运算:加法、减法和乘法。同样已知的是,德雷萨姆斯图的人没有算术运算的优先级规则——他们严格从左到右计算所有的项。例如,对于他们来说,表达式 的结果等于 ,而不是 。
但目前,这些纸张上没有任何算术运算符。所以,如果这个假设是真的,并且纸张上的数字构成了方程式,那么这些运算符一定是随着时间的推移而消失了。
你是一位计算机专家,需要判断这个假设是否合理。对于一些给定的(没有算术运算符的)方程式,你必须找出是否有可能在表达式中放置 +
、-
和 *
,使其成为一个有效的方程式。例如,在一张纸上发现了字符串 。这里,一个可能的解决方案是 。但是,如果有一张纸写着 ,那么这就意味着德雷萨姆斯图的人写这个式子的时候并不是想表达一个方程式。
输入
每个需要处理的方程式占据输入中的一行。每行以一个正整数(小于 )开头,后面跟着一个等号 =
。(为了方便,德雷萨姆斯图的居民使用的方程式左边都很简单。)接着是最多 12 个正整数,构成方程式的右边部分。(这些数字的乘积将小于 )。可能会有一些括号括住一个或多个数字的组合。每一行包含的字符不会超过 80 个。方程式中括号的数量没有其他限制。两个数字之间总会至少有一个空格或括号,否则空白字符的出现没有限制。
只包含数字 0
的那一行表示输入结束,不应处理这一行。
输出
对于每个方程式,输出一行 “Equation #n:”,其中 n
是方程式的编号。然后,输出一行包含问题的一个解决方案,也就是插入了缺失的 +
、-
和 *
符号的方程式。在方程式中不要打印任何空白字符。
如果没有办法插入运算符使方程式成立,那么输出一行 “Impossible”。
在每个测试用例后面输出一个空行。
输入示例
18 = 7 (5 3) 2
30 = 3 3 5
18 = 3 3 5
5 = 3 3
0
输出示例
Equation #1:
18=7+(5-3)*2
Equation #2:
30=3+3*5
Equation #3:
Impossible
Equation #4:
Impossible
提示
如果有多个答案,按照 + < - < *
的顺序输出最小的那个答案。
来源
1999 年中欧中部地区竞赛