1009 Product of Polynomials (PTA)

This time, you are supposed to find A×B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N​1​​ aN​1​​​​ N​2​​ aN​2​​​​ … NK​​ aNK​​​​

where K is the number of nonzero terms in the polynomial, Ni​​ and aNi​​​​ (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10, 0≤NK​​<⋯<N​2​​<N​1​​≤1000.

Output Specification:

For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5


Sample Output:

3 3 3.6 2 6.0 1 1.6


p1 = list(input().split())
p2 = list(input().split())

d1 = {}
d2 = {}
d3 = {}

list1 = []

for i in range(1,len(p1),2):
    if float(p1[i+1]) !=0:
        d1[int(p1[i])] = float(p1[i+1])
for i in range(1,len(p2),2):
    if float(p2[i+1]) !=0:
        d2[int(p2[i])] = float(p2[i+1])
for k1 in d1:
    for k2 in d2:
        temp = d3.get(k1+k2,0) + d1.get(k1)*d2.get(k2)
        if temp !=0:
            d3[k1+k2] = round(temp,1)
            del d3[k1+k2]
list1 = [str(len(d3))]            
if len(d3) != 0:            
    for i in sorted(d3.keys(),reverse = True):

print(' '.join(list1))


您的电子邮箱地址不会被公开。 必填项已用*标注