CF1516A Tit for Tat
Description
Given an array $ a $ of length $ n $ , you can do at most $ k $ operations of the following type on it:
- choose $ 2 $ different elements in the array, add $ 1 $ to the first, and subtract $ 1 $ from the second. However, all the elements of $ a $ have to remain non-negative after this operation.
What is lexicographically the smallest array you can obtain?
An array $ x $ is [lexicographically smaller](https://en.wikipedia.org/wiki/Lexicographical_order) than an array $ y $ if there exists an index $ i $ such that $ x_i
Input Format
The first line contains an integer $ t $ ( $ 1 \le t \le 20 $ ) – the number of test cases you need to solve.
The first line of each test case contains $ 2 $ integers $ n $ and $ k $ ( $ 2 \le n \le 100 $ , $ 1 \le k \le 10000 $ ) — the number of elements in the array and the maximum number of operations you can make.
The second line contains $ n $ space-separated integers $ a_1 $ , $ a_2 $ , $ \ldots $ , $ a_{n} $ ( $ 0 \le a_i \le 100 $ ) — the elements of the array $ a $ .
Output Format
For each test case, print the lexicographically smallest array you can obtain after at most $ k $ operations.
Explanation/Hint
In the second test case, we start by subtracting $ 1 $ from the first element and adding $ 1 $ to the second. Then, we can't get any lexicographically smaller arrays, because we can't make any of the elements negative.