Vupsen, Pupsen and 0
Contest: Codeforces Round 750 (Div. 2)
Difficulty rating: 1600
Tags: constructive algorithms, math

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 $$$\sum_{i=1}^{n}a_i \cdot 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 format:
The first line contains a single integer $$$t$$$ ($$$1 \le t \le 100$$$) — the number of test cases. The next $$$2 \cdot 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 \le n \le 10^5$$$) — the length of the array.

The second line contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ ($$$-10^4 \le a_i \le 10^4$$$, $$$a_i \neq 0$$$) — the elements of the array $$$a$$$.

It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$2 \cdot 10^5$$$.

Output format:
For each test case print $$$n$$$ integers $$$b_1, b_2, \ldots, b_n$$$ — elements of the array $$$b$$$ ($$$|b_1|+|b_2|+\ldots +|b_n| \le 10^9$$$, $$$b_i \neq 0$$$, $$$\sum_{i=1}^{n}a_i \cdot b_i=0$$$).

It can be shown that the answer always exists.

Constraints:
Time limit: 1.0 s
Memory limit: 256.0 MB

Note:
In the first test case, $$$5 \cdot 1 + 5 \cdot (-1)=5-5=0$$$. You could also print $$$3$$$ $$$-3$$$, for example, since $$$5 \cdot 3 + 5 \cdot (-3)=15-15=0$$$

In the second test case, $$$5 \cdot (-1) + (-2) \cdot 5 + 10 \cdot 1 + (-9) \cdot (-1) + 4 \cdot (-1)=-5-10+10+9-4=0$$$.

Example input:
3
2
5 5
5
5 -2 10 -9 4
7
1 2 3 4 5 6 7

Example output:
1 -1
-1 5 1 -1 -1
-10 2 2 -3 5 -1 -1

Editorial:
Let's consider two cases: when $$$n$$$ is even, and when $$$n$$$ is odd.
If $$$n$$$ is even, let's split all numbers into pairs: let $$$a_1$$$ and $$$a_2$$$ be in one pair, $$$a_3$$$ and $$$a_4$$$ in one pair as well and so on. In the pair $$$a_i$$$, $$$a_{i+1}$$$, let $$$b_i=a_{i+1}$$$ and $$$b_{i+1}=-a_i$$$, then the sum $$$a_i \cdot b_i + a_{i+1} \cdot b_{i+1}$$$ in every pair will be equal to $$$0$$$ ($$$a_i \cdot a_{i+1} + a_{i+1} \cdot (-a_i)=0$$$), so the overall sum $$$a_1 \cdot b_1 + a_2 \cdot b_2 + \ldots + a_n \cdot b_n$$$ will be equal to $$$0$$$ as well. Notice that the sum of the $$$|b_i|$$$ is equal to the sum of $$$|a_i|$$$, therefore the sum $$$|b_1| + |b_2| + \ldots + |b_n|$$$ does not exceed $$$MAXA \cdot MAXN = 10^9$$$.
If $$$n$$$ is odd, then let's cut off the last $$$3$$$ numbers and calculate $$$b$$$ for the array $$$a_1, a_2, \ldots, a_{n-3}$$$ the way we did it for even $$$n$$$ ($$$n-3$$$ is even since $$$n$$$ is odd). Then for the last $$$3$$$ numbers $$$a_{n-2}, a_{n-1}, a_n$$$ let's find two numbers with sum not equal to $$$0$$$ (by the Dirichlet principle, there will always exist two numbers out of three not equal to $$$0$$$, which are both positive or both negative, and the sum of those two numbers cannot be equal to $$$0$$$), let them be $$$a_i$$$, $$$a_j$$$, and the third one $$$a_k$$$. Then let $$$b_i=-a_k$$$, $$$b_j=-a_k$$$, $$$b_k=(a_i+a_j)$$$, the sum of $$$a_i \cdot b_i + a_j \cdot b_j + a_k \cdot b_k = 0$$$, and numbers of $$$b$$$ are not equal to $$$0$$$. The sum $$$|b_1| + |b_2| + \ldots + |b_{n-3}|$$$ does not exceed $$$MAXA \cdot (MAXN - 1 - 3)$$$ (since $$$MAXN$$$ is even, and we consider a case with odd $$$n$$$) and the sum $$$b_{n-2}+b_{n-1}+b_n$$$ does not exceed $$$MAXA + MAXA + 2 \cdot MAXA = 4 \cdot MAXA$$$, so the overall sum of $$$|b_i|$$$ does not exceed $$$MAXA \cdot MAXN = 10^9$$$.