UVA126 The Errant Physicist

题目描述

著名物理学家阿尔弗雷德·E·纽曼正在研究涉及多项式乘法的问题。例如,他可能需要计算 $$ (-x^8y+9x^3-1+y) \cdot (x^5y+1+x^3) $$ 得到答案 $$ -x^{13}y^2-x^{11}y+8x^8y+9x^6-x^5y+x^5y^2+8x^3+x^3y-1+y $$ 不幸的是,这些问题太微不足道了,以至于这位伟人的思绪总是游离在工作之外,他得到了错误的答案。因此,他设计的几枚核弹头过早引爆,摧毁了五个主要城市和几片雨林。 你要写一个程序来执行这样的乘法并拯救世界。

输入格式

输入数据文件有若干个测试数据,每个测试数据有两行,每行包含的字符不超过 $80$ 个。输入文件的最后一行包含一个`#`作为其第一个字符。 每行输入都包含一个多项式,该多项式没有空格,也没有任何显式的求幂运算符。指数是正的非零无符号整数。系数也是整数,但也可以是负数。指数和系数的大小都小于或等于 $100$。每个项最多包含一个 $x$ 因子和一个 $y$ 因子。

输出格式

您的程序必须将输入中的每对多项式相乘,并在一对上打印每个乘积行,第一行包含所有指数,相对于其余行适当定位信息,在下面的行中。 1. 输出行中的项必须按 $x$ 的幂次降序排列,对于给定的幂次按照 $y$ 的幂次升序排序。 2. 可以被化简的单项式必须化简。例如,$40x^2y^3-38x^2y^3$ 被替换为 $2x^2y^3$。 3. 不得显示系数为零的单项式。 4. 除常数项为 $1$ 的情况外,系数 $1$ 被省略。 5. 省略指数 $1$。 6. 省略 $x^0$ 和 $y^0$ 的因子。 7. 二进制正负(即输出中连接项的正负)前后都有一个空格。 8. 如果第一项的系数为负,则在第一列中以一元减号开头,中间没有空格。否则,系数本身从第一个输出开始列。 9. 可以假设输出长度最多为 $80$ 个字符。 10. 每对输出行之间不应有空白行。 11. 一对行的长度应该相同——为了实现这一点,尾随空格应该出现在较短行的最后一个非空白字符之后。