Олимпиадный тренинг

Задача . A. Око за око


Дан массив \(a\) длины \(n\), вы можете сделать не более \(k\) операций следующего типа:

  • выбрать \(2\) различных элемента в массиве, прибавить \(1\) к первому и вычесть \(1\) из второго. После применения операции все элемента \(a\) должны остаться неотрицательными.

Какой лексикографически минимальный массив можно получить?

Массив \(x\) лексикографически меньше чем массив \(y\), если есть индекс \(i\) такой, что \(x_i<y_i\), и \(x_j=y_j\) для всех \(1 \le j < i\). Проще говоря, для первого такого \(i\), где массивы различны, \(x_i<y_i\).

Входные данные

В первой строке записано одно целое число \(t\) (\(1 \le t \le 20\)) – количество наборов входных данных.

В первой строке каждого набора входных данных записаны \(2\) целых числа \(n\) и \(k\) (\(2 \le n \le 100\), \(1 \le k \le 10000\)) — размер массива и максимальное количество операций.

Во второй строке каждого набора входных данных записаны \(n\) целых чисел \(a_1\), \(a_2\), \(\ldots\), \(a_{n}\) (\(0 \le a_i \le 100\)) — элементы массива \(a\).

Выходные данные

На каждый набор входных данных выведите лексикографически минимальный массив, который может получиться из исходного за не более чем \(k\) операций.

Примечание

Во втором примере мы начинаем с вычитания \(1\) из первого элемента и добавления \(1\) ко второму. Теперь мы не можем получить лексикографически меньший массив, так как все элементы должны быть неотрицательны.


Примеры
Входные данныеВыходные данные
1 2
3 1
3 1 4
2 10
1 0
2 1 5 
0 1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя