fork download
  1. import math
  2. def find(u, par):
  3.  
  4. if par[u] != u:
  5. par[u] = find(par[u], par)
  6. return par[u]
  7.  
  8. def union(u, v, par, size):
  9. u_root = find(u, par)
  10. v_root = find(v, par)
  11.  
  12. if u_root == v_root:
  13. return
  14.  
  15.  
  16. if size[u_root] < size[v_root]:
  17. par[u_root] = v_root
  18. size[v_root] += size[u_root]
  19. else:
  20. par[v_root] = u_root
  21. size[u_root] += size[v_root]
  22.  
  23. def ip():
  24. return map(int,input().split())
  25.  
  26.  
  27.  
  28.  
  29. T=1
  30. T=int(input())
  31. for __ in range(T):
  32. n=int(input())
  33. lst=list(ip())
  34.  
  35. if n%2==0:
  36. b=[]
  37. for i in range(0,n,2):
  38. b.append(-lst[i+1])
  39. b.append(lst[i])
  40. print(*b)
  41. continue
  42. b=[0,0,0]
  43. b[0]=-lst[2]
  44. b[1]=-lst[2]
  45. b[2]=lst[0]+lst[1]
  46.  
  47. for i in range(3,n,2):
  48. b.append(-lst[i+1])
  49. b.append(lst[i])
  50.  
  51. print(*b)
Success #stdin #stdout 0.09s 14016KB
stdin
3
2
5 5
5
5 -2 10 -9 4
7
1 2 3 4 5 6 7
stdout
-5 5
-10 -10 3 -4 -9
-3 -3 3 -5 4 -7 6