fork download
  1. from numpy.fft import fft, ifft
  2. from numpy import multiply
  3. from numpy.random import seed, randint
  4. def fftrealpolymul(arr_a,arr_b): #fft based real-valued polynomial multiplication
  5.  
  6. L = len(arr_a) + len(arr_b) - 1
  7. a_f=fft(arr_a,L)
  8. b_f=fft(arr_b,L)
  9. c_f = []
  10. for i in range( len(a_f) ):
  11. c_f.append(a_f[i]*b_f[i])
  12. return ifft(c_f)
  13.  
  14. if __name__ == '__main__':
  15.  
  16.  
  17. t = int(input())
  18. for j in range(t):
  19. n = int(input())
  20. l = [int(i) for i in input().split()]
  21. m = [int(i) for i in input().split()]
  22. res2=fftrealpolymul(l,m)
  23. res22 = []
  24. for k in range (len(res2)):
  25. res22.append(int(round(res2[k].real))),
  26. print(*res22)
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
Success #stdin #stdout 0.22s 27156KB
stdin
2
2
1 2 3
3 2 1
2
1 0 1
2 1 0
stdout
3 8 14 8 3
2 1 2 1 0