← Home
write a go solution for Description:
There are n block towers, numbered from 1 to n. The i-th tower consists of a_i blocks.

In one move, you can move one block from tower i to tower j, but only if a_i>a_j. That move increases a_j by 1 and decreases a_i by 1. You can perform as many moves as you would like (possibly, zero).

What's the largest amount of blocks you can have on the tower 1 after the moves?

Input Format:
The first line contains a single integer t (1<=t<=10^4) — the number of testcases.

The first line of each testcase contains a single integer n (2<=n<=2*10^5) — the number of towers.

The second line contains n integers a_1,a_2,...,a_n (1<=a_i<=10^9) — the number of blocks on each tower.

The sum of n over all testcases doesn't exceed 2*10^5.

Output Format:
For each testcase, print the largest amount of blocks you can have on the tower 1 after you make any number of moves (possibly, zero).

Note:
In the first testcase, you can move a block from tower 2 to tower 1, making the block counts [2,1,3]. Then move a block from tower 3 to tower 1, making the block counts [3,1,2]. Tower 1 has 3 blocks in it, and you can't obtain a larger amount.

In the second testcase, you can move a block from any of towers 2 or 3 to tower 1, so that it has 2 blocks in it.

In the third testcase, you can 500000000 times move a block from tower 2 to tower 1. After that the block countes will be [500000001,500000000].. Output only the code with no comments, explanation, or additional text.