CF1615A Closing The Gap
Description
There are $ n $ block towers in a row, where tower $ i $ has a height of $ a_i $ . You're part of a building crew, and you want to make the buildings look as nice as possible. In a single day, you can perform the following operation:
- Choose two indices $ i $ and $ j $ ( $ 1 \leq i, j \leq n $ ; $ i \neq j $ ), and move a block from tower $ i $ to tower $ j $ . This essentially decreases $ a_i $ by $ 1 $ and increases $ a_j $ by $ 1 $ .
You think the ugliness of the buildings is the height difference between the tallest and shortest buildings. Formally, the ugliness is defined as $ \max(a)-\min(a) $ .
What's the minimum possible ugliness you can achieve, after any number of days?
Input Format
The first line contains one integer $ t $ ( $ 1 \leq t \leq 1000 $ ) — the number of test cases. Then $ t $ cases follow.
The first line of each test case contains one integer $ n $ ( $ 2 \leq n \leq 100 $ ) — the number of buildings.
The second line of each test case contains $ n $ space separated integers $ a_1, a_2, \ldots, a_n $ ( $ 1 \leq a_i \leq 10^7 $ ) — the heights of the buildings.
Output Format
For each test case, output a single integer — the minimum possible ugliness of the buildings.
Explanation/Hint
In the first test case, the ugliness is already $ 0 $ .
In the second test case, you should do one operation, with $ i = 1 $ and $ j = 3 $ . The new heights will now be $ [2, 2, 2, 2] $ , with an ugliness of $ 0 $ .
In the third test case, you may do three operations:
1. with $ i = 3 $ and $ j = 1 $ . The new array will now be $ [2, 2, 2, 1, 5] $ ,
2. with $ i = 5 $ and $ j = 4 $ . The new array will now be $ [2, 2, 2, 2, 4] $ ,
3. with $ i = 5 $ and $ j = 3 $ . The new array will now be $ [2, 2, 3, 2, 3] $ .
The resulting ugliness is $ 1 $ . It can be proven that this is the minimum possible ugliness for this test.