description: Vupsen and Pupsen were gifted an integer array. Since Vupsen doesn't like the number 0, he threw away all numbers equal to 0 from the array. As a result, he got an array a of length n.
  
  Pupsen, on the contrary, likes the number 0 and he got upset when he saw the array without zeroes. To cheer Pupsen up, Vupsen decided to come up with another array b of length n such that ∑_{i=1}^{n}a_i ⋅ b_i=0. Since Vupsen doesn't like number 0, the array b must not contain numbers equal to 0. Also, the numbers in that array must not be huge, so the sum of their absolute values cannot exceed 10^9. Please help Vupsen to find any such array b!
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 100) — the number of test cases. The next 2 ⋅ t lines contain the description of test cases. The description of each test case consists of two lines.
  
  The first line of each test case contains a single integer n (2 ≤ n ≤ 10^5) — the length of the array.
  
  The second line contains n integers a_1, a_2, …, a_n (-10^4 ≤ a_i ≤ 10^4, a_i ≠ 0) — the elements of the array a.
  
  It is guaranteed that the sum of n over all test cases does not exceed 2 ⋅ 10^5.
  
  Output
  
  For each test case print n integers b_1, b_2, …, b_n — elements of the array b (|b_1|+|b_2|+… +|b_n| ≤ 10^9, b_i ≠ 0, ∑_{i=1}^{n}a_i ⋅ b_i=0).
  
  It can be shown that the answer always exists.
  
  Example
  
  Input
  
  
  3
  2
  5 5
  5
  5 -2 10 -9 4
  7
  1 2 3 4 5 6 7
  
  
  Output
  
  
  1 -1
  -1 5 1 -1 -1
  -10 2 2 -3 5 -1 -1
  
  Note
  
  In the first test case, 5 ⋅ 1 + 5 ⋅ (-1)=5-5=0. You could also print 3 -3, for example, since 5 ⋅ 3 + 5 ⋅ (-3)=15-15=0
  
  In the second test case, 5 ⋅ (-1) + (-2) ⋅ 5 + 10 ⋅ 1 + (-9) ⋅ (-1) + 4 ⋅ (-1)=-5-10+10+9-4=0.
solution: import bisect
  import collections
  import copy
  import enum
  import functools
  import heapq
  import itertools
  import math
  import random
  import re
  import sys
  import time
  import string
  from typing import List
  sys.setrecursionlimit(3001)
  
  input = sys.stdin.readline
  
  t = int(input())
  for _ in range(t):
      n = int(input())
      arr = list(map(int,input().split()))
      if n%2==0:
          for i in range(0,n,2):
              g = math.gcd(abs(arr[i]),abs(arr[i+1]))
              print(arr[i+1]//g,end=" ")
              print(-arr[i]//g,end=" ")
      else:
          a,b,c = arr[0:3]
          if a+b!=0:
              g = math.gcd(abs(c),abs(a+b))
              print(-c//g,end=" ")
              print(-c//g,end=" ")
              print((a+b)//g,end=" ")
          elif a+c!=0:
              g = math.gcd(abs(b), abs(a+c))
              print(-b//g,end=" ")
              print((a+c)//g,end=" ")
              print(-b//g,end=" ")
          elif b+c!=0:
              g = math.gcd(abs(a), abs(c+b))
              print((b+c)//g,end=" ")
              print(-a//g,end=" ")
              print(-a//g,end=" ")
          for i in range(3,n,2):
              g = math.gcd(abs(arr[i]), abs(arr[i+1]))
              print(arr[i+1]//g, end=" ")
              print(-arr[i]//g, end=" ")
      print()
  