2075 - 【入门】多项式相乘

通过次数

12

提交次数

21

时间限制 : 1 秒
内存限制 : 128 MB

周周在数学课中学到了如何进行两个多项式相乘的操作,例如要计算(2x + 4x^2) \times (3x + 4),先要利用分配律将两个式子拆开相乘,再合并幂次相同的项。

当我们计算 2x \times 3x^2 时,前面的系数相乘作为结果的系数,幂次数相加作为结果的幂次数,即

(2 \times 3)x^{1 + 2} = 6x^3,因此上面的式子可以这样计算:

\ \ \ (2x + 4x^2) \times (3x + 4)

= 6x^2 + 12x^3 + 8x + 16x^2

= 12x^3 + 22x^2 + 8x

那么,我们可以使用数组下标来表示幂次数,数组元素的值表示系数,模拟一下上面的计算过程,就能得到两个多项式相乘的结果了。

输入

输入有 4 行,每行有两个空格隔开的整数 a, b, 1 \leq a\leq 10, 0 \leq b \leq 10,分别代表系数和幂次数,例如 2 \ 3 代表 2x^3。其中前两行属于第一个多项式,后两行属于第二个多项式

输出

输出若干行,表示多项式相乘的结果,每一项输出一行,按照幂次数从大到小输出。

样例

输入

2 1
4 2
3 1
4 0

输出

12 3
22 2
8 1

提示

对于 2x \times 3x^2,这两项在数组中会以 arr[1] = 2arr[2] = 3 的形式存储,相乘的结果会存储在 arr[1 + 2],存储的值为 2 \times 3

因此我们在进行多项式相乘时,要将系数相乘后的结果存入下标为幂次数相加的数组元素中,最后我们要写一个倒序循环,从大到小输出所有系数不为 0 的项的系数和幂次。